Php 在symfony 2中实施用户活动

Php 在symfony 2中实施用户活动,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,在symfony 2中实现用户活动的最佳方式是什么 怎么做呢 我知道symfony 2的活动系统。也许我应该触发一个事件 在每个页面请求上更新是明智的还是有其他(更好的)方法来更新用户活动?跟踪用户请求(可能还有他们的活动)的好方法是侦听kernel.request事件: 侦听器类: namespace Acme\YourBundle\EventListener; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symf

在symfony 2中实现用户活动的最佳方式是什么

怎么做呢

我知道symfony 2的活动系统。也许我应该触发一个事件


在每个页面请求上更新是明智的还是有其他(更好的)方法来更新用户活动?

跟踪用户请求(可能还有他们的活动)的好方法是侦听kernel.request事件:

侦听器类:

namespace Acme\YourBundle\EventListener;

use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\DependencyInjection\ContainerInterface;

class RequestListener
{
    /**
     * Container
     *
     * @var ContainerInterface
     */
    protected $container;

    /**
     * Listener constructor
     *
     * @param ContainerInterface $container
     */
    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    /**
     * kernel.request Event
     *
     * @param GetResponseEvent $event
     */
    public function onKernelRequest(GetResponseEvent $event)
    {
        $request  = $event->getRequest();

        // Here you can intercept all HTTP requests, and through $container get access to user information
    }
}
侦听器的配置:


Acme\YourBundle\EventListener\RequestListener


  • 你所说的用户活动是什么意思?我有一个有用户的网站,网站上有浏览活动。主动意味着他们在页面之间浏览。谢谢你的回复,我想我现在已经有足够的信息来构建它了!!只有密码的答案是不受欢迎的。请解释你做了什么,以及为什么这是“最好的方式”。
    <container xmlns="http://symfony.com/schema/dic/services"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    
        <parameters>
            <parameter key="acme.request_listener.class">Acme\YourBundle\EventListener\RequestListener</parameter>
        </parameters>
    
        <services>
            <service id="acme.request_listener" class="%acme.request_listener.class%">
                <tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest" />
                <argument type="service" id="service_container" />
            </service>
        </services>
    </container>
    
    public function onKernelController(FilterControllerEvent $event)
    {
    
        $controller = $event->getController();
        if ($controller[0] instanceof Controller  and (!strpos( get_class($controller[0]), 'App\FrontendBundle')===false) ) {
    
      }
    }