2016-09-30 3 views
2

ich Sitzung wie folgt beginnen:Symfony 2 aktuelle Sitzung Zeit bekommen

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

Browsing Dokumentation fand ich die Methode, die Lebensdauer der Sitzung zurück. Die Standardsitzungszeit von Symfony 2.3 ist 3600s. Gibt es eine Methode, die eine aktuelle Sitzungszeit zurückgibt? (Zum Beispiel dauert Sitzung 10 Minuten, also werde ich 600s bekommen). Ich habe so etwas in der Dokumentation nicht gefunden.

Oder gibt es eine Möglichkeit, diese Zeit manuell zu zählen und diesen Wert während der Sitzung durch die Seiten zu tragen?

+0

Sie können Startzeit in der Sitzung speichern, wo es neu ist - vielleicht wird diese Frage nützlich sein http://stackoverflow.com/questions/16775028/symfony2-check-whether-session-exists-or-not – ventaquil

+0

Nicht ganz, ich brauche genaue Zeit. –

Antwort

3

Sicher kannst du.

$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()); 

Möglicherweise möchten Sie created von lastUsed verwenden, abhängig oder Ihre Bedürfnisse. created ist, wenn die Sitzung initialisiert wurde (erste Seite Anfrage des Benutzers), während lastUsed ist die neueste natürlich. Aber da Sie etwas über die Lebensdauer von Sitzungen sagen, möchten Sie vielleicht den zweiten verwenden, da dies der Zeitpunkt ist, an dem die Lebensdauer relativ ist.