我们目前正在 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?
如果可能,请在 module.config.php 的 DI 部分中提供直接使用 DiC 的示例以及实现此目的的示例。