lexus27/php-di

适用于应用程序组件的依赖注入容器。

dev-master 2019-11-16 14:32 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:40:51 UTC


README

服务容器覆盖

服务类型

  1. 通用服务
  2. 工厂链接(每次调用时都会实例化新对象)

获取服务的方式

可能的布局

  1. 实现队列容器,具有按优先级插入自定义容器的能力。
  2. 继承自父容器的覆盖容器
  1. 从有序链中调用:需要形成特殊链,此方法可能必要,如果指向服务定位器的链接需要是恒定的。

     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
     --------------------------------------
    
  2. 从继承的容器调用:在通过嵌套覆盖时,需要控制对最终容器(最深层的)的引用。

     service call(service4)
     -> DI4
         -service1
         -service2
             -> DI3
                 -service1
                     -> DI2
                         -service1
                         -service2
                         -service4 <==== called-here ====
                             -> DI1
                                 -service2
                                 -service3
                                 -service4