public function __construct(\Aliegon\Config $config)
 {
     register_shutdown_function("session_write_close");
     $this->memcache = new \Memcache();
     $this->lifeTime = intval(ini_get("session.gc_maxlifetime"));
     $this->initSessionData = null;
     $sessions = $config->get('sessions');
     foreach ($sessions['servers'] as $ip => $port) {
         $this->memcache->addserver($ip, $port);
     }
     return true;
 }
Example #2
0
 /**
  * Loads the selected Session Handler from the config and starts the actual session
  *
  * @param string $name Name of the session
  */
 private function startSession($name)
 {
     if (!isset($_SESSION)) {
         if (headers_sent()) {
             throw new \Exception('headers already sent by');
         }
         if ($this->config->has('sessions')) {
             $session = $this->config->get('session');
             if (array_key_exists('type', $session)) {
                 $sessionClass = 'Aliegon\\Session\\Handler\\' . ucfirst($session['type']) . 'SessionHandler';
                 $sessionHandler = new $sessionClass($this->getConfig());
                 session_set_save_handler(array(&$sessionHandler, "open"), array(&$sessionHandler, "close"), array(&$sessionHandler, "read"), array(&$sessionHandler, "write"), array(&$sessionHandler, "destroy"), array(&$sessionHandler, "gc"));
             }
             if (array_key_exists('lifetime', $session)) {
                 ini_set("session.gc_maxlifetime", $session['maxlifetime']);
             }
         }
         session_name($name);
         session_start();
     }
 }