销毁特定会话

时间:2016-09-15 06:50:18

标签: php symfony

我读到了destroy a particular session using its ID in pure PHP的方法,我想使用Symfony服务和组件做同样的事情。 这必须在控制器外部完成(例如控制台命令)。

但是,我找不到任何处理public void swap(int currentRow, int hRow ) { ArrayList <Double> temp = new ArrayList<Double>(super.M.get(hRow)); M.put(hRow, super.M.get(currentRow));\\from super M.put(currentRow, temp);\\ from super } 方法的服务/组件。

我应该使用它还是我错过了任何服务/组件?

2 个答案:

答案 0 :(得分:3)

此后是一种使用其ID杀死会话的方法(抱歉,我没有时间测试该代码,但它应该可以正常工作)。

use Symfony\Component\HttpFoundation\Session\Session;

$session_id_to_kill = 'xxxxxxxx';

$session = new Session();
$session->setId($session_id_to_kill);
$session->start();
$session->invalidate();

如果您有活动会话(通过控制器操作执行此操作),则必须先将其停止并在杀死另一个后恢复它。

$request->getSession()->stop(); // Stop the current session

// Kill the session using the same code as above

// Restart you session
$request->getSession()->start();

答案 1 :(得分:-1)

回答你的问题:http://symfony.com/doc/current/components/http_foundation/sessions.html#session-data-management

在您的控制器中,您将拥有您的请求对象。一般情况下,您可以使用

$request->getSession()->clear(); 

$request->getSession()->remove("sessionKey");

有关详细信息,请参阅http://symfony.com/doc/current/components/http_foundation/sessions.html

example: getStorageKey()

返回包最终将其数组存储在$ _SESSION中的键。通常,此值可以保留为默认值,供内部使用。

以上文献中的所有内容