lexus27 / php-di
Dependency container for Application bundles.
Installs: 7
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/lexus27/php-di
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2025-12-07 03:16:40 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