PHP工厂模式依赖注入

时间:2012-02-19 11:52:32

标签: php dependency-injection factory-pattern

我一直试图让我的工作模式和依赖注入,我理解这两种模式背后的概念和基础,并可能有一个轻微的交叉。但在我开始编码之前,我只想检查我的流程方法是否正确。

我想要的流程是......

  1. 使用格式创建一个包含我的“核心类”所需的所有属性的配置文件 $配置[ 'core.classname'] [ 'PROPERTY_NAME'] = $值;

  2. 创建一个工厂类,它将创建所有核心类的实例并运行配置文件,将属性注入每个类

  3. 当我的应用程序需要一个类的实例时,它使用工厂类来克隆已注入其依赖项的所需类。

  4. 据我了解,这将解耦我的核心类,允许它们更容易地交换进我的代码。

1 个答案:

答案 0 :(得分:2)

你所谓的'工厂'实际上更像是一个依赖注入容器。传统上,工厂只创建一种类型的对象。

通常,在应用程序确实需要之前,您应该避免创建任何核心实例。您可能定义了100个核心类,其中任何给定的应用程序请求可能只需要一对。

在许多情况下,您的应用会希望共享同一个实例或核心类,因此自动克隆可能不是您想要的。

请考虑阅读Symfony2框架包中的服务(您称之为核心)一章,以获取相关信息: http://symfony.com/doc/current/book/service_container.html