public function start()
	{
		if (is_cli() && ENVIRONMENT !== 'testing')
		{
			$this->logger->debug('Session: Initialization under CLI aborted.');

			return;
		}
		elseif ((bool) ini_get('session.auto_start'))
		{
			$this->logger->error('Session: session.auto_start is enabled in php.ini. Aborting.');

			return;
		}
		elseif (session_status() === PHP_SESSION_ACTIVE)
		{
			$this->logger->warning('Session: Sessions is enabled, and one exists.Please don\'t $session->start();');

			return;
		}

		if (! $this->driver instanceof \SessionHandlerInterface)
		{
			$this->logger->error("Session: Handler '" . $this->driver .
					"' doesn't implement SessionHandlerInterface. Aborting.");
		}

		$this->configure();

		$this->setSaveHandler();

		// Sanitize the cookie, because apparently PHP doesn't do that for userspace handlers
		if (isset($_COOKIE[$this->sessionCookieName]) && (
				! is_string($_COOKIE[$this->sessionCookieName]) || ! preg_match('#\A' . $this->sidRegexp . '\z#', $_COOKIE[$this->sessionCookieName])
				)
		)
		{
			unset($_COOKIE[$this->sessionCookieName]);
		}

		$this->startSession();

		// Is session ID auto-regeneration configured? (ignoring ajax requests)
		if ((empty($_SERVER['HTTP_X_REQUESTED_WITH']) ||
				strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') && ($regenerate_time = $this->sessionTimeToUpdate) > 0
		)
		{
			if (! isset($_SESSION['__ci_last_regenerate']))
			{
				$_SESSION['__ci_last_regenerate'] = time();
			}
			elseif ($_SESSION['__ci_last_regenerate'] < (time() - $regenerate_time))
			{
				$this->regenerate((bool) $this->sessionRegenerateDestroy);
			}
		}
		// Another work-around ... PHP doesn't seem to send the session cookie
		// unless it is being currently created or regenerated
		elseif (isset($_COOKIE[$this->sessionCookieName]) && $_COOKIE[$this->sessionCookieName] === session_id())
		{
			$this->setCookie();
		}

		$this->initVars();

		$this->logger->info("Session: Class initialized using '" . $this->sessionDriverName . "' driver.");

		return $this;
	}
public function start()
	{
		if (is_cli() && ENVIRONMENT !== 'testing')
		{
			$this->logger->debug('Session: Initialization under CLI aborted.');

			return;
		}
		elseif ((bool) ini_get('session.auto_start'))
		{
			$this->logger->error('Session: session.auto_start is enabled in php.ini. Aborting.');

			return;
		}
		elseif (session_status() === PHP_SESSION_ACTIVE)
		{
			$this->logger->warning('Session: Sessions is enabled, and one exists.Please don\'t $session->start();');

			return;
		}

		if (! $this->driver instanceof \SessionHandlerInterface)
		{
			$this->logger->error("Session: Handler '" . $this->driver .
					"' doesn't implement SessionHandlerInterface. Aborting.");
		}

		$this->configure();

		$this->setSaveHandler();

		// Sanitize the cookie, because apparently PHP doesn't do that for userspace handlers
		if (isset($_COOKIE[$this->sessionCookieName]) && (
				! is_string($_COOKIE[$this->sessionCookieName]) || ! preg_match('#\A' . $this->sidRegexp . '\z#', $_COOKIE[$this->sessionCookieName])
				)
		)
		{
			unset($_COOKIE[$this->sessionCookieName]);
		}

		$this->startSession();

		// Is session ID auto-regeneration configured? (ignoring ajax requests)
		if ((empty($_SERVER['HTTP_X_REQUESTED_WITH']) ||
				strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') && ($regenerate_time = $this->sessionTimeToUpdate) > 0
		)
		{
			if (! isset($_SESSION['__ci_last_regenerate']))
			{
				$_SESSION['__ci_last_regenerate'] = time();
			}
			elseif ($_SESSION['__ci_last_regenerate'] < (time() - $regenerate_time))
			{
				$this->regenerate((bool) $this->sessionRegenerateDestroy);
			}
		}
		// Another work-around ... PHP doesn't seem to send the session cookie
		// unless it is being currently created or regenerated
		elseif (isset($_COOKIE[$this->sessionCookieName]) && $_COOKIE[$this->sessionCookieName] === session_id())
		{
			$this->setCookie();
		}

		$this->initVars();

		$this->logger->info("Session: Class initialized using '" . $this->sessionDriverName . "' driver.");

		return $this;
	}
public function start ( ) { if ( is_cli ( ) && ENVIRONMENT !== 'testing' ) { $ this -> logger -> debug ( 'Session: Initialization under CLI aborted.' ) ; return ; } elseif ( ( bool ) ini_get ( 'session.auto_start' ) ) { $ this -> logger -> error ( 'Session: session.auto_start is enabled in php.ini. Aborting.' ) ; return ; } elseif ( session_status ( ) === PHP_SESSION_ACTIVE ) { $ this -> logger -> warning ( 'Session: Sessions is enabled, and one exists.Please don\'t $session->start();' ) ; return ; } if ( ! $ this -> driver instanceof \ SessionHandlerInterface ) { $ this -> logger -> error ( "Session: Handler '" . $ this -> driver . "' doesn't implement SessionHandlerInterface. Aborting." ) ; } $ this -> configure ( ) ; $ this -> setSaveHandler ( ) ; // Sanitize the cookie, because apparently PHP doesn't do that for userspace handlers if ( isset ( $ _COOKIE [ $ this -> sessionCookieName ] ) && ( ! is_string ( $ _COOKIE [ $ this -> sessionCookieName ] ) || ! preg_match ( '#\A' . $ this -> sidRegexp . '\z#' , $ _COOKIE [ $ this -> sessionCookieName ] ) ) ) { unset ( $ _COOKIE [ $ this -> sessionCookieName ] ) ; } $ this -> startSession ( ) ; // Is session ID auto-regeneration configured? (ignoring ajax requests) if ( ( empty ( $ _SERVER [ 'HTTP_X_REQUESTED_WITH' ] ) || strtolower ( $ _SERVER [ 'HTTP_X_REQUESTED_WITH' ] ) !== 'xmlhttprequest' ) && ( $ regenerate_time = $ this -> sessionTimeToUpdate ) > 0 ) { if ( ! isset ( $ _SESSION [ '__ci_last_regenerate' ] ) ) { $ _SESSION [ '__ci_last_regenerate' ] = time ( ) ; } elseif ( $ _SESSION [ '__ci_last_regenerate' ] < ( time ( ) - $ regenerate_time ) ) { $ this -> regenerate ( ( bool ) $ this -> sessionRegenerateDestroy ) ; } } // Another work-around ... PHP doesn't seem to send the session cookie // unless it is being currently created or regenerated elseif ( isset ( $ _COOKIE [ $ this -> sessionCookieName ] ) && $ _COOKIE [ $ this -> sessionCookieName ] === session_id ( ) ) { $ this -> setCookie ( ) ; } $ this -> initVars ( ) ; $ this -> logger -> info ( "Session: Class initialized using '" . $ this -> sessionDriverName . "' driver." ) ; return $ this ; }
Initialize the session container and starts up the session.

@return mixed
Initialize the session container and starts up the session .