Для проекта я использую FOSrestbundle для каждого пакета, и у меня есть ApiBundle, где каждый маршрут вызывается ajax. При каждом действии я проверяю:
if $request->isXmlHttpRequest() {
throw ...
}
Я ищу способ сделать эту проверку только один раз для всего пакета.
Спасибо





Я предлагаю решение для тех, кто хочет сделать то же самое
В каждом контроллере ApiBundle я помещаю эту аннотацию, чтобы каждое имя маршрута имело одинаковый префикс api_
/**
* Class SomeController.
*
* @Route("/some", name = "api_")
*/
class SomeController extends Controller
в прослушивателе событий запроса я поставил эту проверку на событие KernelEvents :: REQUEST
$request = $event->getRequest();
if (!$event->isMasterRequest()) {
return;
}
if ('api_' === substr($request->get('_route'), 0, 4) && !$request->isXmlHttpRequest()) {
throw new MethodNotAllowedException(['ajax']);
}