public function write($sessionId, $data)
{
$file = $this->_getFileName($sessionId);
$dir = dirname($file);
if (!@mkdir($dir, 0755, true) && !is_dir($dir)) {
throw new SessionException('create `:dir` session directory failed: :last_error_message', ['dir' => $dir]);
}
if (file_put_contents($file, $data, LOCK_EX) === false) {
trigger_error(strtr('write `:file` session file failed: :last_error_message', [':file' => $file]));
}
file_put_contents($file, $data);
@touch($file, time() + $this->_ttl);
clearstatcache(true, $file);
}