2016-09-30 62 views
2

我開始會是這樣的:Symfony的2獲取當前會話時間

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

瀏覽文檔,我發現,返回會話的壽命的方法。默認的Symfony 2.3會話時間是3600s。有沒有一種方法可以返回當前的會話時間? (例如會話持續10分鐘,所以我會得到600)。我沒有在文檔中找到這樣的東西。

或者有沒有辦法手動計算這個時間,並在會話期間通過頁面傳遞這個值?

+0

你可以節省開始時間,它是新的會話 - 也許這個問題將是有用的http://stackoverflow.com/questions/16775028/symfony2-check-whether-session-exists-or-not – ventaquil

+0

不完全,我需要準確的時間。 –

回答

3

當然可以。

$session = $this->get('session'); //you can get session from service container. no need for creating new instance. 

// MetadataBag is what you're looking for 
$sessionBag = $session->getMetadataBag(); 

// Here we go... 
var_dump($sessionBag->getCreated()); 
var_dump($sessionBag->getLastUsed()); 

您可能需要使用的lastUsedcreated視或您的需求。 created是會話初始化時(用戶的第一頁請求),而lastUsed是當然最新的。但是因爲你在談論會話的生命週期,所以你可能想使用第二個,因爲那是生命週期相對的時間點。