public function SessionHandler::write in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Session/SessionHandler.php \Drupal\Core\Session\SessionHandler::write()
File
- core/
lib/ Drupal/ Core/ Session/ SessionHandler.php, line 75 - Contains \Drupal\Core\Session\SessionHandler.
Class
- SessionHandler
- Default session handler.
Namespace
Drupal\Core\SessionCode
public function write($sid, $value) {
// The exception handler is not active at this point, so we need to do it
// manually.
try {
$request = $this->requestStack
->getCurrentRequest();
$fields = array(
'uid' => $request
->getSession()
->get('uid', 0),
'hostname' => $request
->getClientIP(),
'session' => $value,
'timestamp' => REQUEST_TIME,
);
$this->connection
->merge('sessions')
->keys(array(
'sid' => Crypt::hashBase64($sid),
))
->fields($fields)
->execute();
return TRUE;
} catch (\Exception $exception) {
require_once DRUPAL_ROOT . '/core/includes/errors.inc';
// If we are displaying errors, then do so with no possibility of a
// further uncaught exception being thrown.
if (error_displayable()) {
print '<h1>Uncaught exception thrown in session handler.</h1>';
print '<p>' . Error::renderExceptionSafe($exception) . '</p><hr />';
}
return FALSE;
}
}