제 목표는 setter를 사용하는 조상 객체에서 DI를 사용하여 조상 객체에 대한 공통 DI를 사용하는 것입니다. 예 : 내 다른 모델이 상속하고, 엔티티 관리자 등으로 미리 구성된 추상 모델 클래스.ZF2 Ancesor 객체의 Dependency Injection
조상을 구성하고 DI로 성공적으로 생성 한 후에 추상 클래스로 변경 한 다음 해당 클래스의 조상을 인스턴스화하면 추상적 인 DI (추상적으로 설정되었는지 여부에 관계없이)는 실행되지 않습니다. 이 클래스
'di' => array(
'instance' => array(
'Stuki\Model' => array(
'parameters' => array(
'em' => 'doctrine_em'
)
),
위 클래스와 DI가 작동을위한
namespace Stuki;
use Doctrine\ORM\EntityManager;
# abstract
class Model {
protected $em;
public function setEm(EntityManager $em) {
$this->em = $em;
}
}
디. 하지만 난 DI를 실행하지 않습니다, 조상에서 실행이 그렇게
namespace Stuki\Model;
use Stuki\Model as StukiModel;
class Authentication extends StukiModel {
public function getIdentity() {
return 'ħ'; #die('get identity');
}
}
$auth = $e->getTarget()->getLocator()->get('Stuki\Model\Authentication');
마지막 줄, $의 인증 = 개체를 원한다.
내성을 사용하지 않고 조상 개체에 대한 DI를 어떻게 설정할 수 있습니까?
문제의 요점은 당신이 InstanceManager에 EntityManager를 취할 Stuki \ 모델을 구성하지만, Stuki \ 인증에 대한 디를 요구하고있다) 나는 만남을 통해 대답 할 때 내 가정이 잘못되었습니다
Doctrine 엔티티 관점에서, 엔티티는 엔티티 관리자를 인식해서는 안됩니다. zf2 교리 지원을 위해 SpiffyDoctrineORM을 사용하고 계신지요? – Fge