从几周开始,我就学习了Symfony2框架。这些天我决定建立一个项目,其中一个主要功能是"推荐逻辑"。 所以我的目标是在URL中添加? ref = something - 要从所有控制器创建和访问的引用cookie。
你能给我一些指南或资源吗?我想我应该使用Symfony2的EventDispatcher组件?
BTW我有一年的Kohana框架经验。我使用基本控制器开发的相同逻辑,由休息控制器继承。在Base Controller中,我编写了一个确定引用ID的方法,并设置了cookie。
答案 0 :(得分: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