Download the PHP package proklung/container-locator-bundle without Composer
On this page you can find all versions of the php package proklung/container-locator-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download proklung/container-locator-bundle
More information about proklung/container-locator-bundle
Files in proklung/container-locator-bundle
Package container-locator-bundle
Short Description Container locator bundle for custom Symfony
License MIT
Informations about the package container-locator-bundle
Служебный бандл, позволяющий получить экземпляр контейнера за пределами Symfony в кастомных (Wordpress, Bitrix) вариантах использования
INTERNAL
Установка
composer.json:
Зачем?
Эксперимент. Сейчас хэлпер container в моих пакетах обращается
к основному классу ServiceProvider, что нормально. Способ, реализуемый в этом бандле - альтернативный, представялется,
что выглядит малость "чище".
Основан на знании, что в каждый инициированый бандл по методу boot загоняется экземпляр контейнера.
Все, что делается в этом бандле - декорируется метод setContainer бандла, сохраняя контейнер в статическое свойство.
Плюс отвязывается от конкретной реализации контейнера.
Как достать контейнер
Класс ContainerLocator:
- статический метод
instanceFromBundles()- из файла конфигураций бандлов. Стоимость - загрузка файла и перебор классов, пока не будет найден бандл, имеющий методgetContainer. - статический метод
instance()- из класса этого бандла.
В результате хэлпер container может выглядеть как-то так:
Синтаксический сахарок
Для использования в неконтейнеродружелюбных местах (внутри компонентов Битрикс и т.п)
Класс ContainerHelper:
public static function kernel()- Kernelpublic static function kernelParameters()- Параметры Kernelpublic static function parameter(string $param)- Конкретный параметр Kernel.public static function twig()- Twig.public static function session()- Session.public static function logger()- Logger (сервисpublic.logger).
All versions of container-locator-bundle with dependencies
symfony/dependency-injection Version ^4.4 || ^5.0
symfony/http-kernel Version ^4.4 || ^5.0
symfony/config Version ^4.4 || ^5.0