Symfony 未在控制台命令中调用侦听器
当其他实体被持久化或更新时,我需要持久化其他实体。因此,我根据这篇文章创建了一个解决方案: config.yml:Symfony 未在控制台命令中调用侦听器,symfony,doctrine-orm,symfony-2.3,Symfony,Doctrine Orm,Symfony 2.3,当其他实体被持久化或更新时,我需要持久化其他实体。因此,我根据这篇文章创建了一个解决方案: config.yml: services: transaktion.chain: class: Foo\BarBundle\Listener\Chain transaktion.flush: class: Foo\BarBundle\Listener\Flush arguments: [ @doctrine.orm.entity_manag
services:
transaktion.chain:
class: Foo\BarBundle\Listener\Chain
transaktion.flush:
class: Foo\BarBundle\Listener\Flush
arguments: [ @doctrine.orm.entity_manager, @transaktion.chain ]
tags:
- { name: kernel.event_listener, event: kernel.response, method: onResponse, priority: 5 }
transaktion.listener:
class: Foo\BarBundle\Listener\TransaktionLogger
arguments: [ @transaktion.chain ]
tags:
- { name: doctrine.event_listener, event: postPersist }
- { name: doctrine.event_listener, event: postUpdate }
- { name: doctrine.event_listener, event: preRemove }
postPersist、postUpdate和preRemove事件正在向链中添加信息,最后,kernel.response启动刷新,并创建所需的其他实体。一切正常
但是,当我在控制台命令中持久化实体时,它就不起作用了。我认为没有kernel.response事件。是否有其他有用的事件用于控制器和控制台命令
其他信息:我正在使用Symfony 2.3,Symfony 2.3中添加了控制台事件 可以在中找到快速介绍 您可以在类中找到控制台事件名称 只需添加
控制台。将标签终止到您的订阅者,您就可以了
tags:
- { name: kernel.event_listener, event: kernel.response, method: onResponse }
- { name: kernel.event_listener, event: console.terminate, method: onResponse }
我已经做过了,但是我没有为标记条目找到正确的事件名称。顺便问一下:文档中是否有所有可用事件的列表?
tags:
- { name: kernel.event_listener, event: kernel.response, method: onResponse }
- { name: kernel.event_listener, event: console.terminate, method: onResponse }