PHPackages                             proklung/wp-static-pages-bundle - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. proklung/wp-static-pages-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

proklung/wp-static-pages-bundle
===============================

Generate static pages from route for Wordpress-bitrix.

1.0.4(4y ago)22MITPHPPHP &gt;=7.3 | ^8.0

Since Jun 1Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ProklUng/wp.static.pages.bundle)[ Packagist](https://packagist.org/packages/proklung/wp-static-pages-bundle)[ RSS](/packages/proklung-wp-static-pages-bundle/feed)WikiDiscussions master Synced today

READMEChangelog (5)Dependencies (7)Versions (6)Used By (0)

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

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

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

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

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

composer.json:

```
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/proklung/wp.static.pages.bundle"
        }
    ]
```

```
composer require proklung/wp-static-pages-bundle
```

### Пример конфига бандла

[](#пример-конфига-бандла)

```
static_page_maker:
  post_type: static_pages
  set_last_modified_header: true
```

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

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

```
simple_static_page:
  path: /simple_page/
  methods: [GET]
  controller: 'Prokl\StaticPageMakerBundle\Services\TemplateControllerContainerAware::templateAction'
  defaults:
    is_granted: ['administrator']
    template:  './staticPages/example.twig'
    statusCode: 202 # HTTP Status = Accepted
    context:
      url: '/simple_page/'
      site_name: 'ACME'
      service: '@app.options' # Сервис как параметр
      # Препроцессоры контекста.
      _processors:
        - '@Prokl\StaticPageMakerBundle\Services\ContextProcessors\ExampleContextProcessor'
      object:
        errored: true
        finished: true
        pending: true
      theme: 'dark'
      title: 'Простая статическая страница'
      h1: 'Простая статическая страница'
      postClasses: 'main'
      assets:
        # Глобальный CSS
        css: 'global.css'
        # Сss для страницы. Entry в терминах webpack.
        css_page: 'basicStaticPage.css'
        js: 'main.js'
```

### Нюансы

[](#нюансы)

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

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

    1. SeoContextProcessor - установка title &amp; description.

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

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

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

    Частная реализация: в Wordpress заведен кастомный тип поста `static_pages`. Где `title` служит для определения страницы, а ACF поля `title`, `description` и `H1` - seo-свойства.
2. При установке опции set\_last\_modified\_header равной true в конфигурации бандла (local/configs/packages/static\_page\_maker.yaml) будут установлены заголовки LastModified.
3. Пример шаблона:

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

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

            {{ title }}

      {% if assets.css|length %}
           {{ encore_entry_link_tags(assets.css) }}
       {% endif %}

       {% if assets.css_page|length %}
           {{ encore_entry_link_tags(assets.css_page) }}
       {% endif %}

    {% endblock %}

    {# content #}
    {% block content %}

    {% endblock %}

    {# footer #}
    {% block footer %}

                {% if assets.js|length %}
                    {{ encore_entry_script_tags(assets.js) }}
                {% endif %}

    {% endblock %}
```

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

```
{% extends "./staticPages/basicStaticSimplePage.twig" %}

{% block content %}

        {{ app.environment }}

        {% apply inline_css %}
             {{ h1 }}

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

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

        {% endapply %}
        {{ render(controller("Prokl\\TwigExtensionsPackBundle\\Twig\\Extensions\\Examples\\ExampleSimpleController", { 'id': 3 })) }}

        {{ render('/api/calendar/', {'headers' : { 'X-Requested-With': 'XMLHttpRequest'} }) }}
        {{ render_service("Prokl\\TwigExtensionsPackBundle\\Twig\\Extensions\\Examples\\ExampleServiceForRender", "action", { 'id': 3} , {'filesystem' : 'filesystem.instance' }) }}

        {{ param('instagram.account') }}

        How are you doing?

        {{ service.ajaxNonce }}

            Работа процессора контента: {{ processor_change }}

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

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

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

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 ~57 days

Total

5

Last Release

1576d ago

### 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 (8 commits)")

---

Tags

php7wordpress-symfony

### Embed Badge

![Health badge](/badges/proklung-wp-static-pages-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/proklung-wp-static-pages-bundle/health.svg)](https://phpackages.com/packages/proklung-wp-static-pages-bundle)
```

###  Alternatives

[symplify/monorepo-builder

Not only Composer tools to build a Monorepo.

5205.3M81](/packages/symplify-monorepo-builder)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)[numero2/contao-storelocator

Contao Plugin for managing stores (or in common address data) and providing a frontend-search based on geo data

121.5k](/packages/numero2-contao-storelocator)

PHPackages © 2026

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