summaryrefslogtreecommitdiffstats
path: root/system/libraries
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-10-09 14:52:34 +0200
committerAndrey Andreev <narf@bofh.bg>2012-10-09 14:52:34 +0200
commit2e3e23053d9748c68fa2c0e11f43af67da8743e8 (patch)
tree27f9c811420cb0d953ec56185667c4b15d7ccc8a /system/libraries
parent683b34d6dfcc10bee7703af605875df9229c2bea (diff)
Disable Session library under CLI and create a CI singleton to be used by its drivers
Diffstat (limited to 'system/libraries')
-rw-r--r--system/libraries/Driver.php4
-rwxr-xr-xsystem/libraries/Session/Session.php27
-rwxr-xr-xsystem/libraries/Session/drivers/Session_cookie.php10
-rwxr-xr-xsystem/libraries/Session/drivers/Session_native.php11
4 files changed, 33 insertions, 19 deletions
diff --git a/system/libraries/Driver.php b/system/libraries/Driver.php
index 1d084c8e4..769d892dc 100644
--- a/system/libraries/Driver.php
+++ b/system/libraries/Driver.php
@@ -63,7 +63,7 @@ class CI_Driver_Library {
* @return object Child class
*/
public function __get($child)
- {
+ {
// Try to load the driver
return $this->load_driver($child);
}
@@ -284,4 +284,4 @@ class CI_Driver {
}
/* End of file Driver.php */
-/* Location: ./system/libraries/Driver.php */
+/* Location: ./system/libraries/Driver.php */ \ No newline at end of file
diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index e6f6050c0..978506062 100755
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -69,13 +69,21 @@ class CI_Session extends CI_Driver_Library {
* routines in its constructor, and manages flashdata aging.
*
* @param array Configuration parameters
+ * @return void
*/
public function __construct(array $params = array())
{
+ $CI =& get_instance();
+
+ // No sessions under CLI
+ if ($CI->input->is_cli_request())
+ {
+ return;
+ }
+
log_message('debug', 'CI_Session Class Initialized');
// Get valid drivers list
- $CI =& get_instance();
$this->valid_drivers = array(
'Session_native',
'Session_cookie'
@@ -587,6 +595,23 @@ class CI_Session extends CI_Driver_Library {
*/
abstract class CI_Session_driver extends CI_Driver {
+ protected $CI;
+
+ /**
+ * Constructor
+ *
+ * Gets the CI singleton, so that individual drivers
+ * don't have to do it separately.
+ *
+ * @return void
+ */
+ public function __construct()
+ {
+ $this->CI =& get_instance();
+ }
+
+ // ------------------------------------------------------------------------
+
/**
* Decorate
*
diff --git a/system/libraries/Session/drivers/Session_cookie.php b/system/libraries/Session/drivers/Session_cookie.php
index 4f415cc0d..fb62c7ec4 100755
--- a/system/libraries/Session/drivers/Session_cookie.php
+++ b/system/libraries/Session/drivers/Session_cookie.php
@@ -158,13 +158,6 @@ class CI_Session_cookie extends CI_Session_driver {
public $userdata = array();
/**
- * Reference to CodeIgniter instance
- *
- * @var object
- */
- public $CI;
-
- /**
* Current time
*
* @var int
@@ -197,9 +190,6 @@ class CI_Session_cookie extends CI_Session_driver {
*/
protected function initialize()
{
- // Set the super object to a local variable for use throughout the class
- $this->CI =& get_instance();
-
// Set all the session preferences, which can either be set
// manually via the $params array or via the config file
$prefs = array(
diff --git a/system/libraries/Session/drivers/Session_native.php b/system/libraries/Session/drivers/Session_native.php
index c97e15356..8d5e51546 100755
--- a/system/libraries/Session/drivers/Session_native.php
+++ b/system/libraries/Session/drivers/Session_native.php
@@ -46,7 +46,6 @@ class CI_Session_native extends CI_Session_driver {
{
// Get config parameters
$config = array();
- $CI =& get_instance();
$prefs = array(
'sess_cookie_name',
'sess_expire_on_close',
@@ -63,7 +62,7 @@ class CI_Session_native extends CI_Session_driver {
{
$config[$key] = isset($this->_parent->params[$key])
? $this->_parent->params[$key]
- : $CI->config->item($key);
+ : $this->CI->config->item($key);
}
// Set session name, if specified
@@ -114,13 +113,13 @@ class CI_Session_native extends CI_Session_driver {
$destroy = TRUE;
}
elseif ($config['sess_match_ip'] === TRUE && isset($_SESSION['ip_address'])
- && $_SESSION['ip_address'] !== $CI->input->ip_address())
+ && $_SESSION['ip_address'] !== $this->CI->input->ip_address())
{
// IP doesn't match - destroy
$destroy = TRUE;
}
elseif ($config['sess_match_useragent'] === TRUE && isset($_SESSION['user_agent'])
- && $_SESSION['user_agent'] !== trim(substr($CI->input->user_agent(), 0, 50)))
+ && $_SESSION['user_agent'] !== trim(substr($this->CI->input->user_agent(), 0, 50)))
{
// Agent doesn't match - destroy
$destroy = TRUE;
@@ -149,13 +148,13 @@ class CI_Session_native extends CI_Session_driver {
if ($config['sess_match_ip'] === TRUE && ! isset($_SESSION['ip_address']))
{
// Store user IP address
- $_SESSION['ip_address'] = $CI->input->ip_address();
+ $_SESSION['ip_address'] = $this->CI->input->ip_address();
}
if ($config['sess_match_useragent'] === TRUE && ! isset($_SESSION['user_agent']))
{
// Store user agent string
- $_SESSION['user_agent'] = trim(substr($CI->input->user_agent(), 0, 50));
+ $_SESSION['user_agent'] = trim(substr($this->CI->input->user_agent(), 0, 50));
}
// Make session ID available