|
|
|
@ -80,13 +80,11 @@ class Session extends Component implements \IteratorAggregate, \ArrayAccess, \Co
|
|
|
|
|
* @var string the name of the session variable that stores the flash message data. |
|
|
|
|
*/ |
|
|
|
|
public $flashVar = '__flash'; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @var array parameter-value pairs to override default session cookie parameters that are used for session_set_cookie_params() function |
|
|
|
|
* @see http://www.php.net/manual/en/function.session-set-cookie-params.php |
|
|
|
|
* @see setCookieParams() |
|
|
|
|
*/ |
|
|
|
|
public $cookieParams = ['httpOnly' => true]; |
|
|
|
|
private $_cookieParams = ['httpOnly' => true]; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Initializes the application component. |
|
|
|
@ -137,7 +135,7 @@ class Session extends Component implements \IteratorAggregate, \ArrayAccess, \Co
|
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$this->setCookieParams($this->cookieParams); |
|
|
|
|
$this->setCookieParamsInternal(); |
|
|
|
|
|
|
|
|
|
@session_start(); |
|
|
|
|
|
|
|
|
@ -265,26 +263,36 @@ class Session extends Component implements \IteratorAggregate, \ArrayAccess, \Co
|
|
|
|
|
$params['httpOnly'] = $params['httponly']; |
|
|
|
|
unset($params['httponly']); |
|
|
|
|
} |
|
|
|
|
return $params; |
|
|
|
|
return array_merge($params, $this->_cookieParams); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Sets the session cookie parameters. |
|
|
|
|
* The effect of this method only lasts for the duration of the script. |
|
|
|
|
* Call this method before the session starts. |
|
|
|
|
* The cookie parameters passed to this method will be merged with the result |
|
|
|
|
* of `session_get_cookie_params()`. |
|
|
|
|
* @param array $value cookie parameters, valid keys include: `lifetime`, `path`, `domain`, `secure` and `httpOnly`. |
|
|
|
|
* @throws InvalidParamException if the parameters are incomplete. |
|
|
|
|
* @see http://us2.php.net/manual/en/function.session-set-cookie-params.php |
|
|
|
|
*/ |
|
|
|
|
public function setCookieParams($value) |
|
|
|
|
public function setCookieParams(array $value) |
|
|
|
|
{ |
|
|
|
|
$this->_cookieParams = $value; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Sets the session cookie parameters. |
|
|
|
|
* This method is called by [[open()]] when it is about to open the session. |
|
|
|
|
* @throws InvalidParamException if the parameters are incomplete. |
|
|
|
|
* @see http://us2.php.net/manual/en/function.session-set-cookie-params.php |
|
|
|
|
*/ |
|
|
|
|
private function setCookieParamsInternal() |
|
|
|
|
{ |
|
|
|
|
$data = $this->getCookieParams(); |
|
|
|
|
extract($data); |
|
|
|
|
extract($value); |
|
|
|
|
if (isset($lifetime, $path, $domain, $secure, $httpOnly)) { |
|
|
|
|
session_set_cookie_params($lifetime, $path, $domain, $secure, $httpOnly); |
|
|
|
|
} else { |
|
|
|
|
throw new InvalidParamException('Please make sure these parameters are provided: lifetime, path, domain, secure and httpOnly.'); |
|
|
|
|
throw new InvalidParamException('Please make sure cookieParams contains these elements: lifetime, path, domain, secure and httpOnly.'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|