diff options
Diffstat (limited to 'kohana/libraries/drivers/Session')
| -rw-r--r-- | kohana/libraries/drivers/Session/Cache.php | 105 | ||||
| -rw-r--r-- | kohana/libraries/drivers/Session/Cookie.php | 80 | ||||
| -rw-r--r-- | kohana/libraries/drivers/Session/Database.php | 163 | 
3 files changed, 0 insertions, 348 deletions
| diff --git a/kohana/libraries/drivers/Session/Cache.php b/kohana/libraries/drivers/Session/Cache.php deleted file mode 100644 index 608010c4..00000000 --- a/kohana/libraries/drivers/Session/Cache.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php defined('SYSPATH') or die('No direct script access.'); -/** - * Session cache driver. - * - * Cache library config goes in the session.storage config entry: - * $config['storage'] = array( - *     'driver' => 'apc', - *     'requests' => 10000 - * ); - * Lifetime does not need to be set as it is - * overridden by the session expiration setting. - * - * $Id$ - * - * @package    Core - * @author     Kohana Team - * @copyright  (c) 2007-2008 Kohana Team - * @license    http://kohanaphp.com/license.html - */ -class Session_Cache_Driver implements Session_Driver { - -	protected $cache; -	protected $encrypt; - -	public function __construct() -	{ -		// Load Encrypt library -		if (Kohana::config('session.encryption')) -		{ -			$this->encrypt = new Encrypt; -		} - -		Kohana::log('debug', 'Session Cache Driver Initialized'); -	} - -	public function open($path, $name) -	{ -		$config = Kohana::config('session.storage'); - -		if (empty($config)) -		{ -			// Load the default group -			$config = Kohana::config('cache.default'); -		} -		elseif (is_string($config)) -		{ -			$name = $config; - -			// Test the config group name -			if (($config = Kohana::config('cache.'.$config)) === NULL) -				throw new Kohana_Exception('cache.undefined_group', $name); -		} - -		$config['lifetime'] = (Kohana::config('session.expiration') == 0) ? 86400 : Kohana::config('session.expiration'); -		$this->cache = new Cache($config); - -		return is_object($this->cache); -	} - -	public function close() -	{ -		return TRUE; -	} - -	public function read($id) -	{ -		$id = 'session_'.$id; -		if ($data = $this->cache->get($id)) -		{ -			return Kohana::config('session.encryption') ? $this->encrypt->decode($data) : $data; -		} - -		// Return value must be string, NOT a boolean -		return ''; -	} - -	public function write($id, $data) -	{ -		$id = 'session_'.$id; -		$data = Kohana::config('session.encryption') ? $this->encrypt->encode($data) : $data; - -		return $this->cache->set($id, $data); -	} - -	public function destroy($id) -	{ -		$id = 'session_'.$id; -		return $this->cache->delete($id); -	} - -	public function regenerate() -	{ -		session_regenerate_id(TRUE); - -		// Return new session id -		return session_id(); -	} - -	public function gc($maxlifetime) -	{ -		// Just return, caches are automatically cleaned up -		return TRUE; -	} - -} // End Session Cache Driver diff --git a/kohana/libraries/drivers/Session/Cookie.php b/kohana/libraries/drivers/Session/Cookie.php deleted file mode 100644 index 9077d4d7..00000000 --- a/kohana/libraries/drivers/Session/Cookie.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php defined('SYSPATH') or die('No direct script access.'); -/** - * Session cookie driver. - * - * $Id$ - * - * @package    Core - * @author     Kohana Team - * @copyright  (c) 2007-2008 Kohana Team - * @license    http://kohanaphp.com/license.html - */ -class Session_Cookie_Driver implements Session_Driver { - -	protected $cookie_name; -	protected $encrypt; // Library - -	public function __construct() -	{ -		$this->cookie_name = Kohana::config('session.name').'_data'; - -		if (Kohana::config('session.encryption')) -		{ -			$this->encrypt = Encrypt::instance(); -		} - -		Kohana::log('debug', 'Session Cookie Driver Initialized'); -	} - -	public function open($path, $name) -	{ -		return TRUE; -	} - -	public function close() -	{ -		return TRUE; -	} - -	public function read($id) -	{ -		$data = (string) cookie::get($this->cookie_name); - -		if ($data == '') -			return $data; - -		return empty($this->encrypt) ? base64_decode($data) : $this->encrypt->decode($data); -	} - -	public function write($id, $data) -	{ -		$data = empty($this->encrypt) ? base64_encode($data) : $this->encrypt->encode($data); - -		if (strlen($data) > 4048) -		{ -			Kohana::log('error', 'Session ('.$id.') data exceeds the 4KB limit, ignoring write.'); -			return FALSE; -		} - -		return cookie::set($this->cookie_name, $data, Kohana::config('session.expiration')); -	} - -	public function destroy($id) -	{ -		return cookie::delete($this->cookie_name); -	} - -	public function regenerate() -	{ -		session_regenerate_id(TRUE); - -		// Return new id -		return session_id(); -	} - -	public function gc($maxlifetime) -	{ -		return TRUE; -	} - -} // End Session Cookie Driver Class
\ No newline at end of file diff --git a/kohana/libraries/drivers/Session/Database.php b/kohana/libraries/drivers/Session/Database.php deleted file mode 100644 index 261541e7..00000000 --- a/kohana/libraries/drivers/Session/Database.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php defined('SYSPATH') or die('No direct script access.'); -/** - * Session database driver. - * - * $Id$ - * - * @package    Core - * @author     Kohana Team - * @copyright  (c) 2007-2008 Kohana Team - * @license    http://kohanaphp.com/license.html - */ -class Session_Database_Driver implements Session_Driver { - -	/* -	CREATE TABLE sessions -	( -		session_id VARCHAR(127) NOT NULL, -		last_activity INT(10) UNSIGNED NOT NULL, -		data TEXT NOT NULL, -		PRIMARY KEY (session_id) -	); -	*/ - -	// Database settings -	protected $db = 'default'; -	protected $table = 'sessions'; - -	// Encryption -	protected $encrypt; - -	// Session settings -	protected $session_id; -	protected $written = FALSE; - -	public function __construct() -	{ -		// Load configuration -		$config = Kohana::config('session'); - -		if ( ! empty($config['encryption'])) -		{ -			// Load encryption -			$this->encrypt = Encrypt::instance(); -		} - -		if (is_array($config['storage'])) -		{ -			if ( ! empty($config['storage']['group'])) -			{ -				// Set the group name -				$this->db = $config['storage']['group']; -			} - -			if ( ! empty($config['storage']['table'])) -			{ -				// Set the table name -				$this->table = $config['storage']['table']; -			} -		} - -		// Load database -		$this->db = Database::instance($this->db); - -		Kohana::log('debug', 'Session Database Driver Initialized'); -	} - -	public function open($path, $name) -	{ -		return TRUE; -	} - -	public function close() -	{ -		return TRUE; -	} - -	public function read($id) -	{ -		// Load the session -		$query = $this->db->from($this->table)->where('session_id', $id)->limit(1)->get()->result(TRUE); - -		if ($query->count() === 0) -		{ -			// No current session -			$this->session_id = NULL; - -			return ''; -		} - -		// Set the current session id -		$this->session_id = $id; - -		// Load the data -		$data = $query->current()->data; - -		return ($this->encrypt === NULL) ? base64_decode($data) : $this->encrypt->decode($data); -	} - -	public function write($id, $data) -	{ -		$data = array -		( -			'session_id' => $id, -			'last_activity' => time(), -			'data' => ($this->encrypt === NULL) ? base64_encode($data) : $this->encrypt->encode($data) -		); - -		if ($this->session_id === NULL) -		{ -			// Insert a new session -			$query = $this->db->insert($this->table, $data); -		} -		elseif ($id === $this->session_id) -		{ -			// Do not update the session_id -			unset($data['session_id']); - -			// Update the existing session -			$query = $this->db->update($this->table, $data, array('session_id' => $id)); -		} -		else -		{ -			// Update the session and id -			$query = $this->db->update($this->table, $data, array('session_id' => $this->session_id)); - -			// Set the new session id -			$this->session_id = $id; -		} - -		return (bool) $query->count(); -	} - -	public function destroy($id) -	{ -		// Delete the requested session -		$this->db->delete($this->table, array('session_id' => $id)); - -		// Session id is no longer valid -		$this->session_id = NULL; - -		return TRUE; -	} - -	public function regenerate() -	{ -		// Generate a new session id -		session_regenerate_id(); - -		// Return new session id -		return session_id(); -	} - -	public function gc($maxlifetime) -	{ -		// Delete all expired sessions -		$query = $this->db->delete($this->table, array('last_activity <' => time() - $maxlifetime)); - -		Kohana::log('debug', 'Session garbage collected: '.$query->count().' row(s) deleted.'); - -		return TRUE; -	} - -} // End Session Database Driver | 
