/** * Start new or resume existing session * * @link http://www.php.net/manual/en/function.session-start.php */ public static final function session_start() { if (self::$started) { trigger_error('Session already started', E_USER_WARNING); } self::$started = true; if (isset($_COOKIE[session_name()])) { self::$id = $_COOKIE[session_name()]; } else { self::$id = uniqid(); $config = self::session_get_cookie_params(); Cookie::setcookie(session_name(), self::$id, $config['lifetime'], $config['path'], $config['domain'], $config['secure'], $config['httponly']); } if (!($savePath = session_save_path())) { $savePath = sys_get_temp_dir(); } if (!is_dir($savePath)) { mkdir($savePath, 0777); } self::$file = sprintf('%s/sess_%s', $savePath, self::$id); if (self::$handler) { self::$handler->open($savePath, session_name()); self::$handler->read(self::$id); } if (file_exists(self::$file)) { $data = file_get_contents(self::$file); session_decode($data); } return true; }