lexus27 / php-di
适用于应用程序组件的依赖注入容器。
dev-master
2019-11-16 14:32 UTC
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-28 20:40:51 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