lexus27 / php-di
Dependency container for Application bundles.
dev-master
2019-11-16 14:32 UTC
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2025-04-26 23:36:56 UTC
README
Перекрываемые контейнеры сервисов
Типы сервисов:
- Общий сервис
- Фабричная ссылка (при каждом вызове инстанциируется новый объект)
Способы получения сервисов:
Возможные компоновки:
- Реализация Очереди контейнеров, с возможностью вклинивать свой контейнер в эту очередь по приоритету.
- Контейнер с переопределением по наследуемости от родительского контейнера
-
Вызов из упорядоченной цепочки: Требует формироания специальной цепочки Способ может быть необходим если ссылка на локатор-сервисов должна быть постоянна
service call(service4) -> DI_CHAIN[order: DI1,DI2,DI3,DI4] ------------------------------------- -> DI4 -service1 -service2 -> DI3 -service1 -> DI2 -service1 -service2 -service4 <==== called-here ==== -> DI1 -service2 -service3 -service4 --------------------------------------
-
Вызов из наследуемого контейнера: При перекрытии с помощью вложенности,нужно контролировать ссылки на конечный контейнер(самый глубокий)
service call(service4) -> DI4 -service1 -service2 -> DI3 -service1 -> DI2 -service1 -service2 -service4 <==== called-here ==== -> DI1 -service2 -service3 -service4