【问题标题】:Symfony2: Call a Controller /File on EVERY actionSymfony2:在每个动作上调用控制器/文件
【发布时间】:2012-05-09 07:48:21
【问题描述】:

我正在用 Symfony2 做一个巨大的项目。前端是 javascript/html5 画布。对于站点更改,我使用 ajax 请求。

现在我想调用一个 php 文件,该文件应该通过每个用户操作执行。有没有一种优雅的方式来做到这一点?

为了更好地理解:我正在做某种游戏,并且 php 检查是否发生了某些事情(招聘完成、建筑物完工等)。

【问题讨论】:

    标签: php javascript service symfony controller


    【解决方案1】:

    看看JMSAopBundle

    【讨论】:

    • 感谢您的提示,但是否有其他解决方案不使用额外的捆绑包?
    • 如果您的代码不依赖于控制器操作,那么您可以为kernel.requestkernel.response 事件创建一个事件监听器并在那里执行代码。
    【解决方案2】:

    如果用户操作是指执行控制器操作(即服务器端),我会做的是监听 kernel.controller 事件:http://symfony.com/doc/current/book/internals.html

    这样您就可以在调用目标控制器之前加载您的脚本并执行它

    use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
    
    public function onKernelController(FilterControllerEvent $event)
    {
        $controller = $event->getController();
        //...
        // call your php file here
    
        // the controller can be changed to any PHP callable
        $event->setController($controller);
    }
    

    我认为您甚至不需要修改控制器,因此您可以删除第一行和最后一行...

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    相关资源
    最近更新 更多