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