Include custom HTTP header for each request
First add the EventListener into your bundle to react to Response events:
<?php
namespace Acme\DemoBundle\EventListener;
use \Symfony\Component\HttpKernel\Event\FilterResponseEvent;
class ResponseListener
{
public function onKernelRequest(FilterResponseEvent $event)
{
$response = $event->getResponse();
$response->headers->set('X-Custom', 'test');
$event->setResponse($response);
}
}
then register it in DemoBundle/Resources/config/services.yml
(or app/config/services.yml
for all bundles)
services:
acme.event_listener.response_listener:
class: Acme\DemoBundle\EventListener\ResponseListener
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelRequest }
Can be useful in test environment to set the latest Git revision (ATTENTION: performance killer):
$response->headers->set('X-Git-Rev', exec('git rev-parse --verify HEAD 2> /dev/null'));
Written by Daniele Napolitano
Related protips
1 Response
Ciao... complimenti per il tuo curriculum, anche senza laurea ;-)
Io ti chiederei un consiglio, se posso. Per l'applicazione su cui sto lavorando, vorrei implementare un sistema di http caching che funziona in ambiente multi utente. Cioe', vorrei poter salvare in cache una diversa rappresentazione di ogni pagina per ogni utente collegato. Per fare cio' ho bisogno di identificare univocamente gli utenti del mio sistema in base ad uno o piu header nella request. Per questo pensavo di usare il tuo metodo spiegato qui per aggiungere un custom header ad ogni richiesta per poter identificare univocamente gli utenti.
Secondo te e' una buona strategia? O ci sono metodi migliori per risolvere il mio problema?
PS. Il mio capo preferrirebbe che non usassi private cache ma se possibile, public/shared cache.
Grazie in anticipo.
Mauro