0
如何指定特定类需要setter注入的接口的实现? 我有一个工作,例如构造函数注入,但不适用于setter。通过接口的Zend Framework 2依赖注入
class Lister1 {
public $finder;
public function setFinder(Finder $finder){
$this->finder = $finder;
}
}
interface Finder {
public function findAllByName($name);
}
class FinderImpl1 implements Finder {
public function findAllByName($name) {}
}
现在为上面的代码工作。
$di = new Di();
$di->instanceManager()->addTypePreference(
'Finder',
'FinderImpl1'
);
$lister = $di->get('Lister1');
但如果我有以下以及
class Lister2 extends Lister1{
}
class FinderImpl2 implements Finder {
public function findAllByName($name) {//assume a different impl}
}
所以Lister1需要FinderImpl1注入& Lister2需要FinderImpl2注入。
我们可以在每个班的基础上添加一个类型首选项吗?
我看了一下装有zf2的单元测试,但没有发现任何内容。
非常感谢大卫,这确实有效。 – SuprF1y