私の目標は、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');
最後の行は、$ AUTH =、DIを実行していないオブジェクト。
イントロスペクションを使用せずに祖先オブジェクトのDIを設定するにはどうすればよいですか?問題の核心は、あなたがInstanceManagerでEntityManagerを取るためにStuki \モデルを設定するが、Stuki \認証のためのディを求めている場合)
;私はミートアップを経由して答えたとき
Doctrineエンティティの観点からは、エンティティはエンティティマネージャを認識できません。私はあなたがzf2の教義サポートのためにSpiffyDoctrineORMを使用していると思いますか? – Fge