PHPackages                             proklung/bitrixstaticpagemakerbundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. proklung/bitrixstaticpagemakerbundle

ActiveSymfony-bundle

proklung/bitrixstaticpagemakerbundle
====================================

Generate static pages from route for Symfony-bitrix.

1.0.63(4y ago)2451MITPHPPHP &gt;=7.3 || ^8.0

Since Apr 19Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ProklUng/BitrixStaticPageMakerBundle)[ Packagist](https://packagist.org/packages/proklung/bitrixstaticpagemakerbundle)[ RSS](/packages/proklung-bitrixstaticpagemakerbundle/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (5)Versions (14)Used By (1)

Бандл рендеринга статических страниц из роутов для связки Bitrix-Symfony
========================================================================

[](#бандл-рендеринга-статических-страниц-из-роутов-для-связки-bitrix-symfony)

#### Зачем?

[](#зачем)

На практике использую его на проектах, где надо оградить те или иные статические страницы от возможности редактирования ручками контент-менеджеров через админку.

Т.е. это частное решение весьма локальной задачи.

#### Установка

[](#установка)

1. `composer require proklung/facade.bundle`
2. Активировать бандл в bundles.php (или в случае кастомных использований Symfony - в standalone\_bundles.php).

В качестве базы используется форкнутый класс Symfony\\Bundle\\FrameworkBundle\\Controller\\TemplateController

### Описание роута (в файле типа routes.yaml)

[](#описание-роута-в-файле-типа-routesyaml)

```
simple_static_page:
  path: /simple_page/
  methods: [GET]
  controller: 'Prokl\StaticPageMakerBundle\Services\TemplateControllerContainerAware::templateAction'
  defaults:
    # Шаблон
    template:  './static/example2.twig'
    statusCode: 202 # HTTP Status = Accepted
    # Контекст, передаваемый Твигу для рендеринга страницы.
    context:
      # Препроцессоры контекста.
      _processors:
        - '@Prokl\StaticPageMakerBundle\Services\ContextProcessors\ExampleContextProcessor'
      options: '@app.options' # Сервис как параметр
      site_name: 'Example site'
      object: # Объект
        errored: true
        finished: true
        pending: true
      page_type: 'static-page' # Битриксовое свойство страницы page_type
      title: 'Простая статическая страница'
      description: 'Простая статическая страница'
```

### Нюансы

[](#нюансы)

1. Перед передачей данных в Твиг существует возможность пропустить данные через цепочку "препроцессоров", чтобы как-нибудь их автоматически изменить.

    Препроцессоры, уже имеющиеся в пакете:

    - **SeoContextProcessor** - установка title &amp; description из мета-свойств элементов инфоблока. ID (отдельного) инфоблока задается на уровне конфигурации бандла. Ключ в конфиге - seo\_iblock\_id. По умолчанию равен null.

        Формат записи в "SEO" инфоблоке: NAME =&gt; url "статической" страницы. Параметры во вкладе SEO.

        Даже если эксплицитно указаны параметры title - description в роуте, то подключенный процессор "перебьет" их значения (если найдет запись в инфоблоке).

        Препроцессор - класс, реализующий интерфейс ContextProcessorInterface с двумя методами setContext (сеттер; чтобы не копипастить его каждый раз существует абстрактный класс AbstractContextProcessor) и handle (где осуществляется вся работа). Метод должен вернуть измененный (или неизмененный) контекст.

        Чтобы препроцессор заработал он должен быть сервисом, помеченным тэгом static\_page\_maker.default.context.processor.

        Препроцессор пускается автоматически, если в конфиге бандла задан ID SEO инфоблока.
    - **BreadcrumbsContextProcessor**. Хлебные крошки.

        Предполагается, что битриксовый компонент подключается в шапке. Но не обязательно, вполне сработает конструкция `{{ showComponent('bitrix:breadcrumbs', '') }}`

        Этот препроцессор пускается последним. В качестве url использует адрес роута, а описание берет из поля title контекста.
2. При установке опции set\_last\_modified\_header равной true в конфигурации бандла (local/configs/packages/static\_page\_maker.yaml) будут установлены заголовки LastModified.

    Пример конфига модуля лежит по адресу Examples/static\_page\_maker.yaml относительно корня бандла.
3. В Твиг добавлены две кастомные функции: header и footer, отвечающие за вывод битриксовой шапки и футера.

    А также функции add\_css, add\_js и add\_string, являющиеся оберткой над соответствующими методами класса Asset.
4. Пример шаблона:

    Базовый (для копипасты лежит в vendor\\ProklUng\\StaticPageMakerBundle\\Examples\\templates\\static\\template\\baseTemplate.twig):

    ```
    {# head #}
    {% block header %}
        {{ header() }}

        {{ APPLICATION.SetTitle(title) }}
        {{ APPLICATION.SetPageProperty('description', description) }}
        {{ APPLICATION.SetPageProperty('page_type', page_type) }}

    {% endblock %}

    {# content #}
    {% block content %}

    {% endblock %}

    {# footer #}
    {% block footer %}
        {{ footer() }}
    {% endblock %}
    ```

    Конкретная страница:

    ```
    ```twig
     {% extends "./static/template/baseTemplate.twig" %}

     {# content #}
     {% block content %}
         {{ add_css('/assets/examples/style.css') }}

         {% apply inline_css %}

             Я статическая страница
             {{ dump (options) }}

                 Мои параметры: {{ site_name }}

             Text

                 .test {
                     color: red;
                 }
                 .errored {color: rosybrown}

             {{ encore_entry_link_tags('main') }}

                 {{ showComponent('guta:example', '') }}
                 {{ url('foo_route') }}

            {% endapply %}
     {% endblock %}

    ```

    ```
    5) Сами шаблоны ищутся согласно зарегистрированным в Твиге путям. В моем случае - в local/twig.

    6) В Твиг подтягиваются все зарегистрированные в системе функции и фильтры.

    ```

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~39 days

Total

13

Last Release

1586d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.3

1.0.5PHP &gt;=7.3 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/9210c86ee6734e537eaf22c0f2fe7a965451e340e39e1aae2b74013f24c2660d?d=identicon)[gedovan](/maintainers/gedovan)

---

Top Contributors

[![ProklUng](https://avatars.githubusercontent.com/u/19857467?v=4)](https://github.com/ProklUng "ProklUng (16 commits)")

---

Tags

bitrixbitrix-symfonyphp7symfonysymfony-bundle

### Embed Badge

![Health badge](/badges/proklung-bitrixstaticpagemakerbundle/health.svg)

```
[![Health](https://phpackages.com/badges/proklung-bitrixstaticpagemakerbundle/health.svg)](https://phpackages.com/packages/proklung-bitrixstaticpagemakerbundle)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[sonata-project/entity-audit-bundle

Audit for Doctrine Entities

644989.8k1](/packages/sonata-project-entity-audit-bundle)[shopware/storefront

Storefront for Shopware

684.2M148](/packages/shopware-storefront)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[sulu/article-bundle

Bundle for managing localized content-rich entities like blog-posts in the Sulu content management system

66409.6k2](/packages/sulu-article-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
