yf_session_driver_files class| File | plugins/session/classes/session/yf_session_driver_files.class.php |
|---|---|
| Use | _class('session_driver_files', 'classes/session/') |
| Extends | yf_session_driver |
A site sets them in its config with $PROJECT_CONF['session_driver_files']['NAME'] = ...;
| Property | Default | Description |
|---|---|---|
$CUR_SESSION_NAME |
'PHPSESSID' |
|
$FILES_PREFIX |
'sess_' |
|
$SESSION_FILES_DIR |
'session_data/' |
public function close()
public function close()
{
return true;
}
public function destroy($ses_id)
public function destroy($ses_id)
{
$ses_file = $this->SESSION_FILES_DIR . $this->FILES_PREFIX . $ses_id;
return @unlink($ses_file);
}
public function gc($life_time)
public function gc($life_time)
{
$start_dir = $this->SESSION_FILES_DIR;
$dh = $start_dir ? opendir($start_dir) : false;
if ( ! $dh) {
return true;
}
while (false !== ($f = readdir($dh))) {
if ($f == '.' || $f == '..') {
continue;
}
if (@filemtime($f) < (time() - main()->SESSION_LIFE_TIME)) {
@unlink($f);
}
}
return true;
}
public function open($path, $name)
public function open($path, $name)
{
$this->CUR_SESSION_NAME = $name;
return true;
}
public function read($ses_id)
public function read($ses_id)
{
$ses_file = $this->SESSION_FILES_DIR . $this->FILES_PREFIX . $ses_id;
if (file_exists($ses_file)) {
$ses_data = file_get_contents($ses_file);
return $ses_data;
}
return ''; // Must return '' here.
}
public function write($ses_id, $data)
public function write($ses_id, $data)
{
$ses_file = $this->SESSION_FILES_DIR . $this->FILES_PREFIX . $ses_id;
file_put_contents($ses_file, $data);
return true;
}
_ hooks and helpers; not routable as page actionspublic function __construct()
public function __construct()
{
$this->SESSION_FILES_DIR = INCLUDE_PATH . $this->SESSION_FILES_DIR;
}