저는 ZendFramework2와 함께 Doctrine2를 사용하고 있습니다. http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html 과 같이 일부 엔티티의 수명주기 이벤트를 처리해야하지만 리스너 또는 적어도 Zend ServiceManager 인스턴스를 가져 오기 위해서는 몇 가지 추가 매개 변수가 필요합니다. Doctrine 리스너에 Zend ServiceManager를 갖거나 매개 변수를 전달할 수있는 방법이 있습니까?Doctrine Entity Listener에 매개 변수를 전달하는 방법은 무엇입니까?
<?php
class ProductListener implements EventSubscriber
{
public function getSubscribedEvents()
{
return array(
'postUpdate',
);
}
public function postUpdate(LifecycleEventArgs $args)
{
$entity = $args->getObject();
$entityManager = $args->getObjectManager();
// need to pass additional parameters here like
$config = $this->getServiceLocator()->get('config');
}
}
감사합니다,하지만 캐치는 리스너가 교리보다는 ZF에 의해 호출된다, 그래서이 마법이 작동하지 않습니다. –
당신은 틀린 Alexey입니다, 실제로 작동합니다. 리스너는 FQCN 또는 서비스 탐지기로 검색 할 수 있습니다 35 번 줄을 읽으십시오 : https://github.com/doctrine/DoctrineModule/blob/master/src/DoctrineModule/Options/EventManager.php#L35 – JBENOIT