Saya melihat bab acara di symfony hari ini dan melakukan percubaan sendiri, tetapi ada satu perkara yang saya tidak begitu faham.
Saya mula-mula menentukan kelas penghitungan Eent untuk mengurus semua acara
Sesuatu acara ditakrifkan dalam HomepageBundle
container = $container; } }
Kemudian pendengar ditakrifkan dalam FileBundle
container->get("logger")->info("我执行了"); // ... } }
Daftar perkhidmatan dalam perkhidmatan.xml
Akhirnya saya mencetuskan acara dalam pengawal HomepageBundle
container); // 在controller里取事件分发器 $dispatcher = $this->get('event_dispatcher'); $dispatcher->dispatch(Events::HOMEPAGE_VISIT, $event); return array('name' => $name); } }
Mula-mula, saya mengaksesnya melalui http://localhost/fm/web/app_dev.php/home/index
Boleh mencetak log "Saya melaksanakan" dengan betul
Semuanya kelihatan baik-baik saja, menunjukkan bahawa acara itu berjaya dicetuskan dan dilaksanakan
Kini dengan mengklik bar nyahpepijat, item acara adalah seperti yang ditunjukkan di bawah:
Apa yang saya tidak faham ialah mengapa home.homepage_visit terdapat dalam Not Called Listeners, tetapi ia jelas dilaksanakan?
Apakah versi khusus symfony 2 anda?
Jika anda menulis log, ini bermakna kod berkaitan acara anda adalah sah.
Maklumat yang dipaparkan dalam profiler (bar debug) dikumpul melalui pengumpul data Bagi sebab panggilan kepada pendengar tidak direkodkan, anda perlu mengetahui lebih banyak butiran untuk memahami token dan maklumat profiler secara terperinci.
Selain itu, jangan terus menyuntik bekas ke dalam acara, kerana kebergantungan ini terlalu luas.