【发布时间】:2012-04-16 11:23:32
【问题描述】:
我们目前正在 Zend Framework 2 中编写一个模块。
我很难找到这方面的文档,但我知道这是可能的。
我想通过依赖注入来设置层次结构中的 3 个类。让我们称这些类; A 类、B 类和 C 类。
ClassA 包含 ClassB 实例数组,ClassB 包含 ClassC 实例数组。 ClassB 的每个实例都应该使用不同的参数进行实例化。这同样适用于 C 类。所有 3 个类的参数都通过构造函数传入(如果需要,也可以使用 setter 处理。
<?php
class ClassA {
protected $arrClassBInstances = array();
public function __construct( $arrClassBInstances ) {
$this->arrClassBInstances = $arrClassBInstances;
}
}
class ClassB {
protected $arrClassCInstances = array();
protected $someOtherParam = "";
public function __construct( $arrClassCInstances, $someOtherParam ) {
$this->arrClassBInstances = $arrClassCInstances;
$this->someOtherParam = $someOtherParam;
}
}
class ClassC {
protected $someParam = "";
public function __construct( $someParam ) {
$this->someParam = $someParam;
}
}
所以它们是我的问题的两个部分。首先,如何配置注入不同参数的同一类的多个实例?例如,ClassB 的多个实例,每个实例都有自己的 ClassC 实例子集。 ZF2 DiC 中必须有某种别名。
其次,如何将一组重新配置依赖项注入到一个类中。例如,如何将 ClassB 实例数组注入 ClassA?
如果可能,请提供一个直接使用 DiC 的示例,以及在 module.config.php 的 DI 部分中实现此目的的示例。
【问题讨论】:
标签: php dependency-injection zend-framework2