Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 Symfony2:在每次操作时调用控制器/文件_Php_Javascript_Service_Symfony_Controller - Fatal编程技术网

Php Symfony2:在每次操作时调用控制器/文件

Php Symfony2:在每次操作时调用控制器/文件,php,javascript,service,symfony,controller,Php,Javascript,Service,Symfony,Controller,我正在和Symfony2做一个大项目。前端是javascript/html5画布。对于站点更改,我使用ajax请求 现在我想调用一个php文件,每个用户操作都应该执行该文件。有没有一种优雅的方式可以做到这一点 为了更好地理解:我正在做一些游戏,php会检查是否发生了什么事情(招聘完成、建筑完工等)。查看一下如果用户操作指的是执行控制器操作(即服务器端),我要做的是监听内核。控制器事件: 因此,您可以加载脚本并在调用目标控制器之前执行它 use Symfony\Component\HttpKern

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

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


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

查看一下

如果用户操作指的是执行控制器操作(即服务器端),我要做的是监听内核。控制器事件:

因此,您可以加载脚本并在调用目标控制器之前执行它

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);
}

我认为您甚至不需要修改控制器以便删除第一行和最后一行…

如果用户操作指的是执行控制器操作(即服务器端),那么我要做的就是侦听kernel.controller事件:

因此,您可以加载脚本并在调用目标控制器之前执行它

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);
}

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

谢谢您的提示,但是有没有不使用额外捆绑包的其他解决方案?如果您的代码不依赖于控制器操作,那么您可以为
内核创建事件侦听器。请求
内核。响应
事件并在那里执行代码。感谢您的提示,但是有没有不使用额外捆绑包的其他解决方案?如果您的代码不依赖于控制器操作,那么您可以为
内核。请求
内核。响应
事件创建一个事件侦听器,并在那里执行代码。在@mdrollete这里有此方法的更详细描述。您的URL不是
404已找到
。在@mdrollete这里有此方法的更详细描述。您的URL是
404未找到