Моя цель - использовать DI в объектах-предках с помощью сеттеров, поэтому у меня есть общий DI для объектов-предков. например класс абстрактных моделей, на которые мои другие модели наследуются, предварительно сконфигурированы с менеджером сущностей и т. д.ZF2 Инъекция зависимостей в объектах Ancesor
До сих пор, после того, как вы успешно настроили предок и создали его с помощью DI, изменив его на абстрактный класс, а затем создав экземпляр предка этого класса, DI для абстрактного (задано ли абстрактное или нет) не выполняется.
namespace Stuki;
use Doctrine\ORM\EntityManager;
# abstract
class Model {
protected $em;
public function setEm(EntityManager $em) {
$this->em = $em;
}
}
Д. И. для этого класса
'di' => array(
'instance' => array(
'Stuki\Model' => array(
'parameters' => array(
'em' => 'doctrine_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 для объектов-предков, не используя интроспекцию?
С точки зрения сущности сущности сущности не должны быть осведомленными об объекте. Думаю, вы используете SpiffyDoctrineORM для поддержки доктрины zf2? – Fge