public SessionManager::start()
Starts the session.
bool True if started.
\RuntimeException If something goes wrong starting the session.
Overrides NativeSessionStorage::start
public function start() { if (($this->started || $this->startedLazy) && !$this->closed) { return $this->started; } $request = $this->requestStack->getCurrentRequest(); $this->setOptions($this->sessionConfiguration->getOptions($request)); if ($this->sessionConfiguration->hasSession($request)) { // If a session cookie exists, initialize the session. Otherwise the // session is only started on demand in save(), making // anonymous users not use a session cookie unless something is stored in // $_SESSION. This allows HTTP proxies to cache anonymous pageviews. $result = $this->startNow(); } if (empty($result)) { // Randomly generate a session identifier for this request. This is // necessary because \Drupal\user\SharedTempStoreFactory::get() wants to // know the future session ID of a lazily started session in advance. // // @todo: With current versions of PHP there is little reason to generate // the session id from within application code. Consider using the // default php session id instead of generating a custom one: // https://www.drupal.org/node/2238561 $this->setId(Crypt::randomBytesBase64()); // Initialize the session global and attach the Symfony session bags. $_SESSION = array(); $this->loadSession(); // NativeSessionStorage::loadSession() sets started to TRUE, reset it to // FALSE here. $this->started = FALSE; $this->startedLazy = TRUE; $result = FALSE; } return $result; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Session!SessionManager.php/function/SessionManager::start/8.1.x