public function SessionManager::save in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Session/SessionManager.php \Drupal\Core\Session\SessionManager::save()
Force the session to be saved and closed.
This method must invoke session_write_close() unless this interface is used for a storage object design for unit or functional testing where a real PHP session would interfere with testing, in which case it it should actually persist the session data if required.
Throws
\RuntimeException If the session is saved without being started, or if the session is already closed.
Overrides NativeSessionStorage::save
File
- core/
lib/ Drupal/ Core/ Session/ SessionManager.php, line 182 - Contains \Drupal\Core\Session\SessionManager.
Class
- SessionManager
- Manages user sessions.
Namespace
Drupal\Core\SessionCode
public function save() {
if ($this
->isCli()) {
// We don't have anything to do if we are not allowed to save the session.
return;
}
if ($this
->isSessionObsolete()) {
// There is no session data to store, destroy the session if it was
// previously started.
if ($this
->getSaveHandler()
->isActive()) {
$this
->destroy();
}
}
else {
// There is session data to store. Start the session if it is not already
// started.
if (!$this
->getSaveHandler()
->isActive()) {
$this
->startNow();
}
// Write the session data.
parent::save();
}
$this->startedLazy = FALSE;
}