2014-12-01 4 views
0

С нескольких недель я изучаю рамки Symfony2. В эти дни я решил построить проект, и одна из основных функций - «логика направления». Итак, моя цель, когда в URL-адрес добавлен? ref = что-то - реферальный файл cookie, который должен быть создан и доступ ко всем контроллерам.Как настроить реферальный файл cookie в Symfony2?

Можете ли вы дать мне рекомендации или ресурсы? Думаю, я должен использовать компонент EventDispatcher Symfony2?

BTW У меня есть опыт работы в течение 1 года с каркасом Коханы. Та же логика, которую я разработал с базовым контроллером, который унаследован остальными контроллерами. В базовом контроллере я написал метод, определяющий идентификатор реферала, и устанавливает cookie.

+0

Почему люди настаивают на вопросы вниз голосования они не понимают? – Cerad

ответ

2

Вы на правильном пути. Установите печенье в качестве слушателя ответа:

namespace Cerad\Bundle\CoreBundle\EventListener; 

use Symfony\Component\HttpKernel\Event\FilterResponseEvent; 

use Symfony\Component\EventDispatcher\EventSubscriberInterface; 

class P3PResponseListener implements EventSubscriberInterface 
{ 
    public static function getSubscribedEvents() 
    { 
     return array 
     (
      'kernel.response' => array(array('onKernelResponse', 10),) 
     ); 
    } 
    public function onKernelResponse(FilterResponseEvent $event) 
    { 
     // P3P Policy *** SET YOUR COOKIE HERE *** 
     $event->getResponse()->headers->set('P3P', 
     'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 
    } 
} 

# services.yml 

services: 

    cerad_core__p3p_response_listener: 
     class: '%cerad_core__p3p_response_listener__class%' 
     tags: 
      - { name: kernel.event_subscriber } 

http://symfony.com/doc/current/cookbook/service_container/event_listener.html

Смежные вопросы