2013-11-01 3 views
5

में नहीं बुलाया गया है जब मुझे अन्य संस्थाओं को जारी या अद्यतन किया जाता है तो मुझे अतिरिक्त संस्थाओं को जारी रखने की आवश्यकता होती है। इसलिए मैंने इस पोस्ट से प्रेरित एक समाधान बनाया: https://stackoverflow.com/a/11054101/1526162श्रोता कंसोल कमांड

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 फ्लश और आवश्यक अतिरिक्त entites बनाई गई हैं शुरू होता है। सब कुछ ठीक काम करता है।

लेकिन, जब मैं एक कंसोल कमांड के अंदर entites जारी रहता है यह काम नहीं कर रहा है। मुझे लगता है कि कोई कर्नेल नहीं है। प्रतिक्रिया घटना। क्या कोई अन्य उपयोगी घटना है जो नियंत्रकों और कंसोल कमांड के साथ काम कर रही है?

अतिरिक्त जानकारी: मैं Symfony 2.3

उत्तर

8

उपयोग कर रहा हूँ कंसोल घटनाओं Symfony 2.3 में जोड़ा गया है।

एक त्वरित परिचय this blog post में पाया जा सकता है।

आप कक्षा Symfony\Component\Console\ConsoleEvents कक्षा में कंसोल ईवेंट नाम पा सकते हैं।

const ConsoleEvents::COMMAND = 'console.command'; 
const ConsoleEvents::TERMINATE = 'console.terminate'; 
const ConsoleEvents::EXCEPTION = 'console.exception'; 

बस अपने ग्राहक के लिए console.terminate टैग को जोड़ने और आप ठीक होना चाहिए।

tags: 
    - { name: kernel.event_listener, event: kernel.response, method: onResponse } 
    - { name: kernel.event_listener, event: console.terminate, method: onResponse } 
+0

मैंने पहले से ही उस पर काम किया है, लेकिन टैग टैग प्रविष्टि के लिए सही ईवेंट नाम ढूंढने में मुझे असफल रहा। बीटीडब्ल्यू: दस्तावेज में सभी उपलब्ध घटनाओं की एक सूची है? –

संबंधित मुद्दे