<?php namespace System\Session; class File implements Driver, Sweeper { /** * Load a session by ID. * * @param string $id * @return array */ public function load($id) { if (file_exists($path = SESSION_PATH.$id)) return unserialize(file_get_contents($path)); } /** * Save a session. * * @param array $session * @return void */ public function save($session) { file_put_contents(SESSION_PATH.$session['id'], serialize($session), LOCK_EX); } /** * Delete a session by ID. * * @param string $id * @return void */ public function delete($id) { @unlink(SESSION_PATH.$id); } /** * Delete all expired sessions. * * @param int $expiration * @return void */ public function sweep($expiration) { foreach (glob(SESSION_PATH.'*') as $file) { if (filetype($file) == 'file' and filemtime($file) < $expiration) @unlink($file); } } }