限时 5折! 详情

php之控制反转容器(Ioc Container)

6800 0 0

上一节文末,我们抛出了一个问题:如何解决注入引起的更复杂的问题?

有些人可能还没明白这个问题是怎么回事。

我们来详细的描述一下:

首先我们假设A依赖B和C,B依赖D,C依赖E,D依赖F,现在我们来看看怎么实例化A?

$a = new A(new B(new D(new F)), new C(new E()));

是不是感觉要崩溃了,实例化A之前就得先知道它依赖哪些类。

从一开始我们为了解决依赖的问题,到现在依赖却成了最棘手的问题,怎么办?

有人提出:如果我们也有一个类似composer的管理容器,在实例化A的时候,能够解决各个类之间的依赖问题是不是就很ok了?

没错,就是这样。

php有一个IoC容器的概念,其作用,就是帮助我们解决这个问题。

IoC容器又是什么?所谓的IoC容器呢,并没有多么高大上,它其实就是一个类,为了解决依赖问题,IoC应该提供如下功能:

  1. 存储定义的类
  2. 实例化类

下面来看一个简版的实现

Class Contai

继续阅读

还有90%的精彩内容,购买继续阅读