Le bon vieux mail : contact@ccoste.fr
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
class DefaultController
{
//...
public function indexAction()
{
// Retourne un objet réponse
return new Response(
'<html><body><p>Hello world</p></body></html>'
);
}
}
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
class DefaultController
{
//...
public function indexAction()
{
$name = 'Snoopy';
// Retourne un objet réponse
return $this->render('hello.html.twig', $name);
}
}
//...
public function indexAction(Request $request)
{
$types = $request->getAcceptableContentTypes();
$result = ['name' => 'Snoopy'];
if (in_array('text/html', $types) {
return $this->render('hello.html.twig', $result);
} elseif(in_array('application/json', $types) {
return $this->json($result);
}
}
Combien font 1 + 2 ?
3
<html><body><p>Le résultat est : 3</p></body></html>
{"value": 3}
//...
class MyView implements EventSubscriberInterface
{
public function onKernelView(GetResponseForControllerResultEvent $event)
{
$result = $event->getControllerResult();
$types = $event->getRequest()->getAcceptableContentTypes();
if (in_array('text/html', $types) {
$response = new Response('hello.html.twig', $result);
} elseif(in_array('application/json', $types) {
$response = new JsonResponse($result);
}
$event->setResponse($response);
}
public static function getSubscribedEvents()
{
return [
KernelEvents::VIEW => 'onKernelView',
];
}
}
public function indexAction()
{
return [
'name' => 'Snoopy'
];
}
- Événement Kernel.view (documentation)
- Événement Kernel.view (knpuniversity)
- eZComponents MvcTools