2014-12-01 152 views
0

从几个星期我就开始学习Symfony2框架。这些天我决定建立一个项目,其中一个主要功能是“推荐逻辑”。 所以我的目标是在URL中添加? ref =东西 - 从所有控制器创建并访问的推荐cookie。如何在Symfony2中设置推荐cookie?

你能给我一些指导或资源?我想我应该使用Symfony2的EventDispatcher组件?

顺便说一句我有1年的Kohana框架经验。我用一个由其余控制器继承的基本控制器开发的相同逻辑。在基本控制器中,我编写了确定引用ID的方法,并设置了Cookie。

+0

为什么人们坚持反对投票的问题,他们不明白? – Cerad 2014-12-01 17:13:51

回答

2

你是在正确的轨道上。设置cookie在响应监听器:

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