for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Zenstruck\ControllerUtil\EventListener;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
use Zenstruck\ControllerUtil\View;
/**
* @author Kevin Bond <[email protected]>
*/
abstract class ViewListener
{
public function onKernelView(GetResponseForControllerResultEvent $event)
$result = $event->getControllerResult();
$format = $event->getRequest()->getRequestFormat();
if (!$result instanceof View) {
return;
}
if (!$this->supports($result, $format)) {
$response = Response::create(
$this->getContent($result, $format),
$result->getStatusCode(),
$result->getHeaders()
)
->setCache($result->getCache())
;
$event->setResponse($response);
* @param View $view
* @param string $format
*
* @return bool
abstract protected function supports(View $view, $format);
* @return string
abstract protected function getContent(View $view, $format);