2014-12-01 53 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