Symfony 未在控制台命令中调用侦听器

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

当其他实体被持久化或更新时,我需要持久化其他实体。因此,我根据这篇文章创建了一个解决方案:

config.yml:

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 }