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 7221c9f2..00000000 --- a/kohana/libraries/drivers/Session/Cache.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php defined('SYSPATH') OR die('No direct access allowed.'); -/** - * 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: Cache.php 3769 2008-12-15 00:48:56Z zombor $ - * - * @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 7b791064..00000000 --- a/kohana/libraries/drivers/Session/Cookie.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php defined('SYSPATH') OR die('No direct access allowed.'); -/** - * Session cookie driver. - * - * $Id: Cookie.php 3769 2008-12-15 00:48:56Z zombor $ - * - * @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 b4144ffb..00000000 --- a/kohana/libraries/drivers/Session/Database.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php defined('SYSPATH') OR die('No direct access allowed.'); -/** - * Session database driver. - * - * $Id: Database.php 3769 2008-12-15 00:48:56Z zombor $ - * - * @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 |