/** * SetOptions - set both the class specified * * @param array $user_options */ public static function setOptions(array $user_options = array()) { // set default options on first run only (before applying user settings) if (!self::$_default_options_set) { foreach (self::$_default_options as $default_option_name => $default_option_value) { if (isset(self::$_default_options[$default_option_name]) && $default_option_value !== null) { ini_set('session.' . $default_option_name, $default_option_value); } } self::$_default_options_set = true; } // set the options the user has requested to set foreach ($user_options as $user_option_name => $user_option_value) { // set the ini based values if (array_key_exists($user_option_name, self::$_default_options)) { ini_set('session.' . $user_option_name, $user_option_value); continue; } // get log level setting if passed if ($user_option_name === 'log_level') { if (!is_int($user_option_value)) { throw new Zend_Session_Exception(__CLASS__ . '::setOptions() log_level expects an integer.'); } if ($user_option_value < 0 || $user_option_value > 3) { throw new Zend_Session_Exception(__CLASS__ . '::setOptions() log_level value is out of range, must be 0 to 5 inclusive.'); } if (!class_exists('Zend_Log', false)) { throw new Zend_Session_Exception(__CLASS__ . '::setOptions() logging is enabled, but Zend_Log was not loaded'); } self::$_log_level = $user_option_value; continue; } // get strict settting if passed if ($user_option_name === 'strict') { self::$_strict = $user_option_value; continue; } // get remember me seconds setting if passed if ($user_option_name === 'remember_me_seconds') { self::$_remember_me_seconds = $user_option_value; } } }