从Symfony中的EventListener创建可重用/全局变量

时间:2016-05-26 10:12:48

标签: php symfony event-listener

我使用EventListener检查访问每个控制器的用户的权限并记录这些操作。我现在想为每个调用添加一个唯一标识符并将其添加到日志中。 虽然在EventListener中很容易,但有没有办法使用在调用EventListener的Controller中的EventListener中创建的相同$var

示例:

  

用户访问Controller :: Something - >调用EventListener   创建了唯一的$uid - >使用$uid内部的public function onKernelController(FilterControllerEvent $event) { $uid = rand(); ... /* Log Action */ $this->log->writeLog('SOME MESSAGE', __LINE__, 3, $uid); ... }   控制器再次。

我的EventListener:

/**
 * @Route("/admin/_ajax/_saveNewClient", name="saveNewClient")
 */
public function saveNewClientAction(Request $request)
{
    //DO STH
    ...
    /* Log Action */
    $this->get('log')->writeLog(
     'OTHER MESSAGE AFTER EVENTLISTENER', __LINE__, 1, $uid); //$uid from EventListener
    ...
}

我的控制器:

^(?!D|Ca).*$

1 个答案:

答案 0 :(得分:0)

你可以使用session:

$session = new Session();
$session->start();

// set and get session attributes
$session->set('LINE', 'value');
$session->get('LINE');