7.4.6 Шаблонизатор

Контроллер на предыдущем шаге должен был::1) Либо сразу отдать напрямую объект Response2) Либо отдать что-то еще, например массив шаблонизатора, который уже будет преобразован в объект. Для того, чтобы шаблонизаторы могли “вклиниться” на данном этапе имеется событие KernelEvents::VIEW (kernel.view).

...
if (!$response instanceof Response) {
    $event = new GetResponseForControllerResultEvent($this, $request, $type, $response);
    $this->dispatcher->dispatch(KernelEvents::VIEW, $event);

    if ($event->hasResponse()) {
        $response = $event->getResponse();
    }

    if (!$response instanceof Response) {
        // Ошибка, так как не получен Response и отдача Exception
    }

 }
...

Слушатели данного события могут вызывать метод setResponse() для установки своего ответа.