2012-05-09 4 views
1

Я делаю огромный проект с Symfony2. Frontend - это холст javascript/html5. Для изменений сайта я использую ajax-запросы.Symfony2: вызовите контроллер/файл на КАЖДОЕ действие

Теперь я хочу позвонить в php-файл, который должен быть выполнен с КАЖДОМ действием пользователя. Есть ли элегантный способ сделать это?

Для лучшего понимания: Я занимаюсь какой-то игрой и проверками php, если что-то случится (завершение вербовки, завершенные здания и т. Д.).

ответ

1

Посмотрите в JMSAopBundle

+0

Спасибо за подсказку, но есть ли другое решение без использования дополнительного пакета? – user1383973

+0

Если ваш код не зависит от действия контроллера, вы можете создать прослушиватель событий для события kernel.request или kernel.response и выполнить там код. –

0

Если на действия пользователя вы имеете в виду выполнения действия контроллера (т.е. на стороне сервера), что я хотел бы сделать, это слушать событие kernel.controller: http://symfony.com/doc/current/book/internals.html

так что вы можете загрузить скрипт и выполнить его Juste до целевого контроллера вызываются

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

Я не думаю, что вам даже не нужно изменить контроллер, так что вы можете удалить первую и последнюю строку ...

+1

Существует более подробное описание этого метода здесь http://matt.drollette.com/2012/06/calling-a-method-before-every-controller-action-in-symfony2/ – MDrollette

+0

@MDrollette Ваш URL-адрес ' 404 Not Found'. –

Смежные вопросы