Doctrine orm 如何将参数传递给实体侦听器?
我在ZendFramework2中使用Doctrine2。 我需要处理一些实体的生命周期事件,如下所述: 但我还需要侦听器中的一些附加参数,或者至少Zend ServiceManager实例中的参数,以便获取它们。 有没有办法让Zend ServiceManager在条令侦听器中或向其传递一些参数Doctrine orm 如何将参数传递给实体侦听器?,doctrine-orm,zend-framework2,Doctrine Orm,Zend Framework2,我在ZendFramework2中使用Doctrine2。 我需要处理一些实体的生命周期事件,如下所述: 但我还需要侦听器中的一些附加参数,或者至少Zend ServiceManager实例中的参数,以便获取它们。 有没有办法让Zend ServiceManager在条令侦听器中或向其传递一些参数 <?php class ProductListener implements EventSubscriber { public function getSubscribedEvents(
<?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');
}
}
研究如何实现ZF2的ServiceLocatorAwareInterface
。这需要通过服务管理器/定位器本身(以及模块/应用程序配置中的相关可调用/工厂声明)实例化侦听器,而不是像链接示例中所示直接新建它
这是一个可能有助于理解魔法的方法;) 谢谢,但问题是,监听器是由条令而不是ZF调用的,所以这个魔法对它不起作用。你错了,Alexey,它确实起作用了。可以通过FQCN或服务定位器检索侦听器,请阅读第35行: