/** * Конструктор * * @param array $options */ public function __construct($options) { switch (config('cache.driver')) { default: case 'Cache_Driver_File': $driver = 'Session_Driver_File'; break; case 'Cache_Driver_Memcache': $driver = 'Session_Driver_Memcache'; break; case 'Cache_Driver_APC': $driver = 'Session_Driver_APC'; break; case 'Cache_Driver_eAccelerator': $driver = 'Session_Driver_eAccelerator'; break; case 'Cache_Driver_XCache': $driver = 'Session_Driver_XCache'; break; } $defaults = array('driver' => $driver, 'save_path' => CACHE . DS . 'sessions', 'path' => CACHE . DS . 'sessions', 'prefix' => 'sessions', 'cookie_domain' => Input_Cookie::getDomain(), 'session_expire' => 3600); $options = array_merge($defaults, $options); parent::__construct($options); foreach (self::$iniOptions as $key => $option) { if ($this->options->{$key}) { if ($value = $this->options[$key] ? $this->options[$key] : $option) { ini_set('session.' . $key, $value); } $option && ini_set('session.' . $key, $option); } } session_set_save_handler(array($this->object, 'open'), array($this->object, 'close'), array($this->object, 'read'), array($this->object, 'write'), array($this->object, 'destroy'), array($this->object, 'gc')); $this->init(); }
/** * Инициалиазация * * @param array $options */ public function __construct($options = array()) { self::$statistics or self::$statistics = new Core_ArrayObject(); parent::__construct($options); }