我正在尝试计算用户在登录期间访问了多少页。Symfony2 count访问过的网站每个用户
因此,我创建了一个Service
,它正在监听Kernel::TERMINATE
事件,每当用户转到我系统内的其他站点时应增加计数器。
class ActivityListener implements EventSubscriberInterface {
private $doctrine;
private $session;
public function __construct(Registry $doctrine, Session $session){
$this->doctrine = $doctrine;
$this->session = $session;
}
public static function getSubscribedEvents(){
return array(
KernelEvents::TERMINATE => 'increasePageCount'
);
}
public function increasePageCount(){
$em = $this->doctrine->getManager();
$log = $em->getRepository('Bundle:UserLog')->findBy(array('sessionId' => $this->session->getId()));
if($log){
$log = $log[0];
$log->increasePageCounter(); //Function in the entity that increases the count
$em->persist($log);
$em->flush();
}
}
}
该代码将被调用,这是好的,但每页换10次,这显然是很多方法!
我也尝试了Kernel::REQUEST
事件,但结果相同。
我可以怎样才能让每个新页面请求只增加一次PageCounter? (例如,用户从账单概览开始到某个账单的细节)