/** * @method init * @static */ static function init() { if (self::$inited) { return false; } ini_set("session.entropy_file", "/dev/urandom"); ini_set("session.entropy_length", "512"); ini_set("session.hash_function", "1"); $base_url = Q_Request::baseUrl(); $name = Q_Config::get('Q', 'session', 'name', 'sessionId'); $lifetime = Q_Config::get('Q', 'session', 'durations', Q_Request::formFactor(), 0); $parts = parse_url($base_url); $path = !empty($parts['path']) ? $parts['path'] : '/'; $domain = '.' . $parts['host']; Q::event('Q/session/init', array('name' => &$name, 'lifetime' => &$lifetime, 'path' => &$path, 'domain' => &$domain), 'before'); Q_Session::name($name); session_set_cookie_params(isset($lifetime) ? $lifetime : 0, $path, $domain, false, false); if (Q_Config::get('Q', 'session', 'appendSuffix', false) or isset($_GET[$name])) { if (self::id()) { $s = "?{$name}=" . self::id(); $suffix = Q_Uri::suffix(); $suffix[$base_url] = isset($suffix[$base_url]) ? $suffix[$base_url] . $s : $s; Q_Uri::suffix($suffix); } } self::$inited = true; return true; }