Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony事件侦听器未启动_Php_Symfony_Event Handling - Fatal编程技术网

Php Symfony事件侦听器未启动

Php Symfony事件侦听器未启动,php,symfony,event-handling,Php,Symfony,Event Handling,我正为这件事抓狂,也许有人能帮我。我以前做过这件事,没有任何问题,但我对Symfony是新手,所以这次我可能错过了一些东西 我试图加载一个事件侦听器,以便在保存实体时触发一些代码 在我的app/config/config.yml中,我放了这个 services: fu_bar.listener: class: Fu\BarBundle\EventListener\AuthCheckListener tags: - { name: d

我正为这件事抓狂,也许有人能帮我。我以前做过这件事,没有任何问题,但我对Symfony是新手,所以这次我可能错过了一些东西

我试图加载一个事件侦听器,以便在保存实体时触发一些代码

在我的app/config/config.yml中,我放了这个

services:
    fu_bar.listener:
        class: Fu\BarBundle\EventListener\AuthCheckListener
        tags:
            - { name: doctrine.event_listener, event: postPersist, connection: default }
            - { name: doctrine.event_listener, event: preUpdate, connection: default }
在我的Fu\BarBundle\EventListener\AuthCheckListener中,我这样做只是为了看到我正在使用这些方法,而我没有

<?php
namespace Fu\BarBundle\EventListener;
use Doctrine\ORM\Event\LifecycleEventArgs;

class AuthCheckListener {
    public function preUpdate(LifecycleEventArgs $args) {
        file_put_contents('/tmp/yyy', 'ffdf');
    }

    public function postPersist(LifecycleEventArgs $args) {
        file_put_contents('/tmp/xxx', 'fff');
        //$this->syncAuth($args);
    }    
}

原则:事件监听器应为原则。事件监听器

  • 对服务和参数使用点符号
  • 对控制器、视图和此类“对象”使用冒号符号

我将冒号改为点,但它现在可以工作了。我说得太快了,在清除缓存后,点符号完成了。我认为你的答案是正确的。谢谢那个小错误浪费了我很多时间。Grr新框架。如果Symfony有办法告诉我们什么时候指定了无效事件,那就太好了。@gnarly:那太好了,但这只是一个惯例,所以你可以自己做标记,称它为
foo:bar:tag
,并用这种方式让所有事情都像一个符咒一样工作。。。因此,不可能进行此类控制:)