我正在用Symfony2做一個大型項目。前端是javascript/html5畫布。對於網站更改,我使用ajax請求。Symfony2:在每一個動作上調用控制器/文件
現在我想調用一個php文件,應該用每個用戶操作執行。有沒有一種優雅的方式來做到這一點?
爲了更好的理解:我正在做某種遊戲和php檢查,如果發生了什麼事情(招聘完成,建築物完成等)。
我正在用Symfony2做一個大型項目。前端是javascript/html5畫布。對於網站更改,我使用ajax請求。Symfony2:在每一個動作上調用控制器/文件
現在我想調用一個php文件,應該用每個用戶操作執行。有沒有一種優雅的方式來做到這一點?
爲了更好的理解:我正在做某種遊戲和php檢查,如果發生了什麼事情(招聘完成,建築物完成等)。
看看到JMSAopBundle
如果用戶操作你的意思是執行器動作(即服務器端),我會做什麼是聽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);
}
我不認爲你甚至需要修改控制器,以便您可以刪除第一個和最後行之前...
這裏有更詳細的說明這個方法http://matt.drollette.com/2012/06/calling-a-method-before-every-controller-action-in-symfony2/ – MDrollette
@MDrollette你的URL是' 404找不到'。 –
感謝您的提示,但有沒有使用額外捆綁的另一種解決方案? – user1383973
如果你的代碼不依賴於控制器動作,那麼你可以爲'kernel.request'或'kernel.response'事件創建一個事件監聽器並在那裏執行代碼。 –