如何创建将在 Symfony2 中过期/销毁会话的命令控制台?
Posted
技术标签:
【中文标题】如何创建将在 Symfony2 中过期/销毁会话的命令控制台?【英文标题】:How to create a command console that will expire/destroy a session in Symfony2? 【发布时间】:2014-01-24 21:45:07 【问题描述】:各位,我想在 Symfony 2 中创建一个使会话过期或销毁会话的命令控制台?这是我的初始代码,但它不起作用:(谢谢希望你能帮助我
public function configure()
$this
->setName('pat:session:delete')
->setDescription('Delete a existing session')
->addArgument('session_id', InputArgument::REQUIRED, 'The ID of session that will destroy')
;
public function execute(InputInterface $input, OutputInterface $output)
$sessionId = $input->getArgument('session_id');
$sessionQuery = SessionQuery::create()
->filterById($sessionId)->findOne()->toArray();
$session = $this->getContainer()->get('session');
//Option 1
$session->migrate($destroy = false, $lifetime = null);
//Option 2
$session->invalidate();
//Option 3
$session->getMetadataBag()->stampNew(1);
//Option 4
$session->remove($sessionQuery["Id"]);
【问题讨论】:
【参考方案1】:// 通过控制器注销(Symfony 2.6+)
$this->get('security.token_storage')->setToken(null); $this->get('request')->getSession()->invalidate();
more info...
【讨论】:
以上是关于如何创建将在 Symfony2 中过期/销毁会话的命令控制台?的主要内容,如果未能解决你的问题,请参考以下文章
即使我正在工作,会话也会过期,会话生命周期,Ajax 和 Symfony2