/** * setOptions - set both the class specified * * @param array $userOptions - pass-by-keyword style array of <option name, option value> pairs * @throws Zend_Session_Exception * @return void */ public static function setOptions(array $userOptions = array()) { // set default options on first run only (before applying user settings) if (!self::$_defaultOptionsSet) { foreach (self::$_defaultOptions as $defaultOptionName => $defaultOptionValue) { if (isset(self::$_defaultOptions[$defaultOptionName])) { ini_set("session.{$defaultOptionName}", $defaultOptionValue); } } self::$_defaultOptionsSet = true; } // set the options the user has requested to set foreach ($userOptions as $userOptionName => $userOptionValue) { $userOptionName = strtolower($userOptionName); // set the ini based values if (array_key_exists($userOptionName, self::$_defaultOptions)) { ini_set("session.{$userOptionName}", $userOptionValue); } elseif (isset(self::$_localOptions[$userOptionName])) { self::${self::$_localOptions[$userOptionName]} = $userOptionValue; } else { /** @see Zend_Session_Exception */ // require_once 'Zend/Session/Exception.php'; throw new Zend_Session_Exception("Unknown option: {$userOptionName} = {$userOptionValue}"); } } }
/** * setOptions - set both the class specified * * @param array $userOptions - pass-by-keyword style array of <option name, option value> pairs * @throws Zend_Session_Exception * @return void */ public static function setOptions(array $userOptions = array()) { // set default options on first run only (before applying user settings) if (!self::$_defaultOptionsSet) { foreach (self::$_defaultOptions as $default_option_name => $default_option_value) { if (isset(self::$_defaultOptions[$default_option_name])) { ini_set('session.' . $default_option_name, $default_option_value); } } self::$_defaultOptionsSet = true; } // set the options the user has requested to set foreach ($userOptions as $user_option_name => $user_option_value) { $user_option_name = strtolower($user_option_name); // set the ini based values if (array_key_exists($user_option_name, self::$_defaultOptions)) { ini_set('session.' . $user_option_name, $user_option_value); } elseif (isset(self::$_localOptions[$user_option_name])) { self::${self::$_localOptions[$user_option_name]} = $user_option_value; } else { throw new Zend_Session_Exception("Unknown option: {$user_option_name} = {$user_option_value}"); } } $savePath = ini_get('session.save_path'); if (strpos($savePath, ';')) { $savePath = explode(';', $savePath); $savePath = realpath(array_pop($savePath)); } if (!is_writable($savePath)) { throw new Zend_Session_Exception("Unwritable session.save_path: {$savePath}"); } }
/** * writeClose() - Shutdown the sesssion, close writing and detach $_SESSION from the back-end storage mechanism. * This will complete the internal data transformation on this request. * * @param bool $readonly - OPTIONAL remove write access (i.e. throw error if Zend_Session's attempt writes) * @return void */ public static function writeClose($readonly = true) { if (self::$_writeClosed) { return; } if ($readonly) { parent::$_writable = false; } if (!self::$_unitTestEnabled) { session_write_close(); session_id(''); } session_write_close(); self::$_writeClosed = true; self::$_sessionStarted = false; self::$_defaultOptionsSet = false; }
/** * setOptions - set both the class specified * * @param array $userOptions - pass-by-keyword style array of <option name, option value> pairs * @throws Zend_Session_Exception * @return void */ public static function setOptions(array $userOptions = array()) { // set default options on first run only (before applying user settings) if (!self::$_defaultOptionsSet) { foreach (self::$_defaultOptions as $default_option_name => $default_option_value) { if (isset(self::$_defaultOptions[$default_option_name]) && $default_option_value !== null) { ini_set('session.' . $default_option_name, $default_option_value); } } self::$_defaultOptionsSet = true; } // set the options the user has requested to set foreach ($userOptions as $user_option_name => $user_option_value) { $user_option_name = strtolower($user_option_name); // set the ini based values if (array_key_exists($user_option_name, self::$_defaultOptions)) { ini_set('session.' . $user_option_name, $user_option_value); } elseif (isset(self::$_localOptions[$user_option_name])) { self::${self::$_localOptions[$user_option_name]} = $user_option_value; } else { throw new Zend_Session_Exception("Unknown option: {$user_option_name} = {$user_option_value}"); } } }