在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
}
}
侦听器的配置:
<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>
您可以在Symfony官方文档中获得有关此主题的更多信息:
Symfony: Internal requests
Symfony: Service container
我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…
php Singleton类实例将在多个会话中保留吗? - php举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…
PHP Count数组元素 - php嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…
在Symfony config env()帮助器中使用resolve运算符 - phpThis文章介绍了类型转换和一些方便的运算符,可在Symfony配置中的env()帮助器内使用这些运算符。除了resolve:运算符,其他所有内容都很清楚。文章说: resolve:运算符用其值替换容器参数名称:我将要使用其名称来自env变量值的参数吗?重点是什么?例如,在学说捆绑包的配置中使用它:dbal: # configure these for yo…
PHP:从函数返回值并直接回显它? - php这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…