/** * セッションを開始する * @param string $name * @return $this * */ public function __construct($name = 'sess') { $this->ses_n = $name; if ('' === session_id()) { $cookie_params = \ebi\Conf::cookie_params(); session_name($cookie_params['session_name']); session_cache_expire($cookie_params['session_expire']); session_cache_limiter($cookie_params['session_limiter']); if ($cookie_params['cookie_lifetime'] > 0 || $cookie_params['cookie_path'] != '/' || !empty($cookie_params['cookie_domain']) || $cookie_params['cookie_secure'] !== false) { session_set_cookie_params($cookie_params['cookie_lifetime'], $cookie_params['cookie_path'], $cookie_params['cookie_domain'], $cookie_params['cookie_secure']); } if (static::has_class_plugin('session_read')) { ini_set('session.save_handler', 'user'); session_set_save_handler([$this, 'open'], [$this, 'close'], [$this, 'read'], [$this, 'write'], [$this, 'destroy'], [$this, 'gc']); if (isset($this->vars[session_name()])) { session_regenerate_id(true); } } session_start(); register_shutdown_function(function () { if ('' != session_id()) { session_write_close(); } }); } }
/** * クッキーへの書き出し * @param string $name 書き込む変数名 * @param int $expire 有効期限(秒) (+ time) */ public function write_cookie($name, $expire = null) { $cookie_params = \ebi\Conf::cookie_params(); if ($expire === null) { $expire = $cookie_params['cookie_lifetime']; if ($expire > 0) { $expire = $expire + time(); } } setcookie($name, $this->in_vars($name), time() + $expire, $cookie_params['cookie_path'], $cookie_params['cookie_domain'], $cookie_params['cookie_secure']); }