public function NativeSessionStorage::setSaveHandler

Registers save handler as a PHP session handler.

To use internal PHP session save handlers, override this method using ini_set with session.save_handlers and session.save_path e.g.

ini_set('session.save_handlers', 'files'); ini_set('session.save_path', /tmp');

Parameters

object $saveHandler Default null means NativeProxy.:

See also

http://php.net/session-set-save-handler

http://php.net/sessionhandlerinterface

http://php.net/sessionhandler

1 call to NativeSessionStorage::setSaveHandler()
NativeSessionStorage::__construct in drupal/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
Constructor.

File

drupal/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php, line 346

Class

NativeSessionStorage
This provides a base class for session attribute storage.

Namespace

Symfony\Component\HttpFoundation\Session\Storage

Code

public function setSaveHandler($saveHandler = null) {

  // Wrap $saveHandler in proxy
  if (!$saveHandler instanceof AbstractProxy && $saveHandler instanceof \SessionHandlerInterface) {
    $saveHandler = new SessionHandlerProxy($saveHandler);
  }
  elseif (!$saveHandler instanceof AbstractProxy) {
    $saveHandler = new NativeProxy();
  }
  $this->saveHandler = $saveHandler;
  if ($this->saveHandler instanceof \SessionHandlerInterface) {
    if (version_compare(phpversion(), '5.4.0', '>=')) {
      session_set_save_handler($this->saveHandler, false);
    }
    else {
      session_set_save_handler(array(
        $this->saveHandler,
        'open',
      ), array(
        $this->saveHandler,
        'close',
      ), array(
        $this->saveHandler,
        'read',
      ), array(
        $this->saveHandler,
        'write',
      ), array(
        $this->saveHandler,
        'destroy',
      ), array(
        $this->saveHandler,
        'gc',
      ));
    }
  }
}