file.php 1006 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
<?php namespace System\Session\Driver;

class File implements \System\Session\Driver {

	/**
	 * Load a session by ID.
	 *
	 * @param  string  $id
	 * @return array
	 */
	public function load($id)
	{
13
		if (file_exists($path = APP_PATH.'storage/sessions/'.$id))
14 15 16 17 18 19 20 21 22 23 24 25 26
		{
			return unserialize(file_get_contents($path));
		}
	}

	/**
	 * Save a session.
	 *
	 * @param  array  $session
	 * @return void
	 */
	public function save($session)
	{
27
		file_put_contents(APP_PATH.'storage/sessions/'.$session['id'], serialize($session), LOCK_EX);
28 29 30 31 32 33 34 35 36 37
	}

	/**
	 * Delete a session by ID.
	 *
	 * @param  string  $id
	 * @return void
	 */
	public function delete($id)
	{
38
		@unlink(APP_PATH.'storage/sessions/'.$id);
39 40 41 42 43 44 45 46 47 48
	}

	/**
	 * Delete all expired sessions.
	 *
	 * @param  int   $expiration
	 * @return void
	 */
	public function sweep($expiration)
	{
49
		foreach (glob(APP_PATH.'storage/sessions/*') as $file)
50 51 52 53 54 55 56 57 58
		{
			if (filetype($file) == 'file' and filemtime($file) < $expiration)
			{
				@unlink($file);
			}			
		}
	}
	
}