Doctrine orm 如何将参数传递给实体侦听器?

Doctrine orm 如何将参数传递给实体侦听器?,doctrine-orm,zend-framework2,Doctrine Orm,Zend Framework2,我在ZendFramework2中使用Doctrine2。 我需要处理一些实体的生命周期事件,如下所述: 但我还需要侦听器中的一些附加参数,或者至少Zend ServiceManager实例中的参数,以便获取它们。 有没有办法让Zend ServiceManager在条令侦听器中或向其传递一些参数 <?php class ProductListener implements EventSubscriber { public function getSubscribedEvents(

我在ZendFramework2中使用Doctrine2。 我需要处理一些实体的生命周期事件,如下所述: 但我还需要侦听器中的一些附加参数,或者至少Zend ServiceManager实例中的参数,以便获取它们。 有没有办法让Zend ServiceManager在条令侦听器中或向其传递一些参数

<?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行: