【问题标题】:How do I set up referral cookie in Symfony2?如何在 Symfony2 中设置推荐 cookie?
【发布时间】:2014-12-01 16:57:51
【问题描述】:

几周后我开始学习 Symfony2 框架。这些天我决定建立一个项目,主要功能之一是“推荐逻辑”。 所以我的目标是何时在 URL 中添加 ?ref=something - 一个要从所有控制器创建和访问的推荐 cookie。

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

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

【问题讨论】:

  • 为什么人们坚持对他们不理解的问题投反对票?

标签: symfony


【解决方案1】:

你在正确的轨道上。在响应监听器中设置 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

【讨论】:

    猜你喜欢
    • 2012-07-19
    • 2017-12-03
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多