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