PHPackages                             proklung/core-framework-extension-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. [Framework](/categories/framework)
4. /
5. proklung/core-framework-extension-bundle

ActiveSymfony-bundle[Framework](/categories/framework)

proklung/core-framework-extension-bundle
========================================

Core framework bundle for custom Symfony

1.8.6(4y ago)141MITPHPPHP &gt;=7.2 | ^8.0

Since May 5Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ProklUng/core.framework.extension.bundle)[ Packagist](https://packagist.org/packages/proklung/core-framework-extension-bundle)[ RSS](/packages/proklung-core-framework-extension-bundle/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (44)Versions (86)Used By (1)

Расширения для кастомных вариантов использования Symfony
========================================================

[](#расширения-для-кастомных-вариантов-использования-symfony)

То, что входит в стандартный фрэймворк Symfony (в бандл `Symfony\Bundle\FrameworkBundle\FrameworkBundle`), но не завелось в кастомном варианте (потребовало форка) и(или) несет необязательный функционал.

"Core" бандл. Без него функционал сервис-контейнера будет куцым (минималистичным). Многое не заработает.

По сути, это `FrameworkBundle` с наполовину выпиленным функционалом (не нужным в кастомных сборках) - формы, workflow, translators &amp; и т.п.

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

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

composer.json:

```
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/proklung/core.framework.extension.bundle"
        }
    ]
```

```
composer require proklung/core-framework-extension-bundle
```

Конфигурационный файл
---------------------

[](#конфигурационный-файл)

По адресу `local/packages/framework.yaml` (или `/config/packages/framework.yaml` для Wordpress).

Пример:

```
framework:
  validation:
    enabled: true
    enable_annotations: true

  cache:
    enabled: true
    app: cache.adapter.filesystem
    system: cache.adapter.system
    directory: '%kernel.project_dir%/bitrix/cache/symfony'
    default_memcached_provider: 'memcached://localhost'

  pools:
    my_cache_pool:
      public: true
      adapter: cache.adapter.filesystem
      default_lifetime: 600
  twig:
    # Пути к шаблонам
    default_path: '%kernel.project_dir%/local/twig'
    paths:
      '%kernel.project_dir%/local/twig': ~
      # С namespace
      '%kernel.project_dir%/../../vendor/symfony/web-profiler-bundle/Resources/views': WebProfiler

    cache: false
    cache_dir: '/bitrix/cache/twig'
    autoescape: 'name'
    autoescape_service: ~
    autoescape_service_method: ~
    base_template_class: 'Twig\Template'
    debug: '%kernel.debug%'
    strict_variables: '%kernel.debug%'

  dbal:
    enabled: true
    url: '%env(DATABASE_URL)%'
    charset: UTF8
    default_connection: default
    types: ~

    connections:
        default:
          url: "%env(DATABASE_URL)%"
          dbname:           '%env(DB_NAME)%'
          user:             '%env(DB_USER)%'
          password:         '%env(DB_PASSWORD)%'
          host:             localhost
          mapping_types:
            enum: string

  serializer:
    enabled: true
    enable_annotations: true
    max_depth_handler: false
    name_converter: 'serializer.name_converter.camel_case_to_snake_case'

  secrets:
    enabled: true
    vault_directory: '%kernel.project_dir%/config/secrets/%kernel.environment%'
    local_dotenv_file: '%kernel.project_dir%/.env.%kernel.environment%.local'
    decryption_env_var: 'base64:default::SYMFONY_DECRYPTION_SECRET'

  annotations:
    enabled: true
    file_cache_dir: '%kernel.cache_dir%/annotations'
    cache: 'file'
    annotations_ttl_cache: 7200

  session:
    enabled: true

  csrf_protection:
    enabled: true

  property_access:
    enabled: true

  mailer:
    enabled: true

  messenger:
    enabled: true

  notifier:
    enabled: true

  lock:
    enabled: true
    resources: ~
```

Консольные команды
------------------

[](#консольные-команды)

Стандартные:

- `debug:router`
- `router:match`
- `debug:event-dispatcher`
- `debug:container`
- `debug:autowiring`
- `config:dump-reference`

### Автоматическое подхватывание команд установленых битриксовых модулей

[](#автоматическое-подхватывание-команд-установленых-битриксовых-модулей)

Конструкция пробегает по установленным (в папках `local` и `bitrix` модулям), где ищет файл `cli.php`. Он должен возвращать массив с инициализированными командами этого модуля.

```
    return [
        new ExampleCommand(), // Должен наследоваться от \Symfony\Component\Console\Command\Command
        container()->get('console.command.about') // Из глобального контейнера
    ];
```

Эти команды регистрируются в общем для приложения контейнере команд и доступны через `php bin/console`.

Если пакет запускается не в Битриксе - ничего страшного, функционал игнорируется.

Расширения
----------

[](#расширения)

Любое расширение может быть отключено проставлением `false` параметру `enabled` соответствующего раздела файла `framework.yaml`.

### DBAL

[](#dbal)

### Validator

[](#validator)

### Cache

[](#cache)

### Serializer

[](#serializer)

### Secrets

[](#secrets)

### Lock

[](#lock)

[док](https://symfony.com/doc/current/lock.html#configuring-lock-with-frameworkbundle)

### Notifier

[](#notifier)

### Messenger

[](#messenger)

Всё согласно [документации](https://symfony.com/doc/current/messenger.html#installation)

Из нюансов:

- Auto-wiring `MessageHandlerInterface` не срабатывает. Нужно прописывать сервисы саморучно.
- Чтобы заработала конструкция с `RabbitMQ` на сервере должно быть установлено `php_amqp` расширение для PHP.

### Mailer

[](#mailer)

`framework.yaml`:

```
  mailer:
    enabled: true
    dsn: gmail+smtp://robotivanov2020:xxjqfjyegwmznrtb@default

    envelope:
      recipients: ['example@mail.ru']

    # Кастомные параметры
    default_email_from: 'email@gmail.com'
    default_email_title: 'Super title'
    # Шаблон - для strftime, где элемент паттерна обрамлен скобками.
    dsn_file: file:///upload/emails/{Y}/{m}/{d}/@hash.eml
```

#### File mailer transport

[](#file-mailer-transport)

```
       use Symfony\Component\Mime\Email;
       $email = (new Email())
            ->from('from@mail.ru')
            ->to('example@gmail.com')
            ->subject('Time for Symfony Mailer!')
            ->text('Sending emails is fun again!')
            ->html('See Twig integration for better HTML integration!');

        /** @var \Symfony\Component\Mailer\Transport\TransportInterface $factory */
        $factory = container()->get('custom_mailer_transports.filesystem');
        $factory->send($email);
```

Письмо запишется в файл, находящийся по адресу, указанному параметром `dsn_file` в `framework.yaml`.

#### Кастомный отправитель писем

[](#кастомный-отправитель-писем)

```
        $factoryMail = container()->get('mailer_bundle.send_email_via_factory');
        $message = $factoryMail->createMessage(
            'example@gmail.com',
            'Testing',
            'Testing body',
            [
                'Лог' => '/my_app-2021-26-07.log' // Файл приаттачится к письму.
            ]
        );

        $sender = container()->get('custom_mail_sender');
        $sender->sendImmediately($message);
```

### Чтение PHP 8 атрибутов на PHP &gt;=7.2

[](#чтение-php-8-атрибутов-на-php-72)

С использованием [компонента Spiral Framework](https://spiral.dev/docs/component-attributes).

Сервисы:

- `spiral.annotations_selective_reader` - совмещенный читатель аннотаций Doctrine и PHP 8 атрибутов.
- `spiral.psr6_selective_reader` - PSR-6 совместимый кэшированный вариант совмещенного читателя.
- `spiral.attribute_reader` - отдельный читатель PHP 8 атрибутов.
- `spiral.attribute_cached_reader` - кэшированный вариант сервиса `spiral.attribute_reader`.
- `spiral.annotation_reader` - читатель аннотаций Doctrine из Spiral Framework.
- `spiral.annotation_cached_reader` - кэшированный вариант сервиса `spiral.annotation_reader`.

Если в свойствах фрэймворка (`framework.yaml`) параметр `cache` не равен `file`, то все кэшированные варианты сервисов удаляются из контейнера.

Параметры кэширования - `file_cache_dir` и `ttl_cache` - берутся из конфигурации `framework.yaml`.

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity73

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

Recently: every ~34 days

Total

85

Last Release

1632d ago

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

1.1.0PHP &gt;=7.2 | ^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 (90 commits)")

---

Tags

bitrix-symfonysymfonywordpress-symfony

### Embed Badge

![Health badge](/badges/proklung-core-framework-extension-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/proklung-core-framework-extension-bundle/health.svg)](https://phpackages.com/packages/proklung-core-framework-extension-bundle)
```

###  Alternatives

[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)[chameleon-system/chameleon-base

The Chameleon System core.

1028.6k5](/packages/chameleon-system-chameleon-base)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M577](/packages/shopware-core)[oro/platform

Business Application Platform (BAP)

645143.5k115](/packages/oro-platform)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M508](/packages/pimcore-pimcore)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M737](/packages/sylius-sylius)

PHPackages © 2026

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