특정 클래스가 세터 주입에 필요한 인터페이스의 구현을 어떻게 지정합니까? 나는 예를 들어 생성자 삽입을 위해 작동하지만 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