Last Updated: February 25, 2016
·
868
· dnax

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'));

1 Response
Add your 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

over 1 year ago ·