diff options
author | Greg Aker <greg.aker@ellislab.com> | 2010-11-10 21:44:26 +0100 |
---|---|---|
committer | Greg Aker <greg.aker@ellislab.com> | 2010-11-10 21:44:26 +0100 |
commit | 4abfa686ca53177b7dbbb7e1bac3febbbe27ec0f (patch) | |
tree | 1f3d98599c12dec2258a2c90139f5a3cec60ee7e | |
parent | 5fcfbaba16e72fb870e77d66fce303b96edfc49d (diff) |
Blasting the Base4/5 files. Updating Controller.php to inherit bits from the old Base5.
If a constructor is needed in a controller, call parent::__contruct()
-rw-r--r-- | application/controllers/welcome.php | 6 | ||||
-rw-r--r-- | system/core/Base4.php | 70 | ||||
-rw-r--r-- | system/core/Base5.php | 57 | ||||
-rw-r--r-- | system/core/CodeIgniter.php | 20 | ||||
-rw-r--r-- | system/core/Controller.php | 40 |
5 files changed, 21 insertions, 172 deletions
diff --git a/application/controllers/welcome.php b/application/controllers/welcome.php index 3c2f7e1cf..79689f012 100644 --- a/application/controllers/welcome.php +++ b/application/controllers/welcome.php @@ -1,10 +1,10 @@ -<?php +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Welcome extends CI_Controller { - function Welcome() + function __construct() { - parent::CI_Controller(); + parent::__construct(); } function index() diff --git a/system/core/Base4.php b/system/core/Base4.php deleted file mode 100644 index ef7838d69..000000000 --- a/system/core/Base4.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); -/** - * CodeIgniter - * - * An open source application development framework for PHP 4.3.2 or newer - * - * @package CodeIgniter - * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2008 - 2010, EllisLab, Inc. - * @license http://codeigniter.com/user_guide/license.html - * @link http://codeigniter.com - * @since Version 1.3 - * @filesource - */ - -// ------------------------------------------------------------------------ - -/** - * CI_BASE - For PHP 4 - * - * This file is used only when CodeIgniter is being run under PHP 4. - * - * In order to allow CI to work under PHP 4 we had to make the Loader class - * the parent of the Controller Base class. It's the only way we can - * enable functions like $this->load->library('email') to instantiate - * classes that can then be used within controllers as $this->email->send() - * - * PHP 4 also has trouble referencing the CI super object within application - * constructors since objects do not exist until the class is fully - * instantiated. Basically PHP 4 sucks... - * - * Since PHP 5 doesn't suffer from this problem so we load one of - * two files based on the version of PHP being run. - * @PHP4 - * - * @package CodeIgniter - * @subpackage codeigniter - * @category front-controller - * @author ExpressionEngine Dev Team - * @link http://codeigniter.com/user_guide/ - */ - class CI_Base extends CI_Loader { - - function CI_Base() - { - // This allows syntax like $this->load->foo() to work - parent::CI_Loader(); - $this->load =& $this; - - // This allows resources used within controller constructors to work - global $OBJ; - $OBJ = $this->load; // Do NOT use a reference. - } -} - -function &get_instance() -{ - global $CI, $OBJ; - - if (is_object($CI)) - { - return $CI; - } - - return $OBJ->load; -} - - -/* End of file Base4.php */ -/* Location: ./system/core/Base4.php */
\ No newline at end of file diff --git a/system/core/Base5.php b/system/core/Base5.php deleted file mode 100644 index ac6c7f020..000000000 --- a/system/core/Base5.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); -/** - * CodeIgniter - * - * An open source application development framework for PHP 4.3.2 or newer - * - * @package CodeIgniter - * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2008 - 2010, EllisLab, Inc. - * @license http://codeigniter.com/user_guide/license.html - * @link http://codeigniter.com - * @since Version 1.3 - * @filesource - */ - - -// ------------------------------------------------------------------------ - -/** - * CI_BASE - For PHP 5 - * - * This file contains some code used only when CodeIgniter is being - * run under PHP 5. It allows us to manage the CI super object more - * gracefully than what is possible with PHP 4. - * @PHP4 (no need for separate Bases after PHP 4 is gone) - * - * @package CodeIgniter - * @subpackage codeigniter - * @category front-controller - * @author ExpressionEngine Dev Team - * @link http://codeigniter.com/user_guide/ - */ - -class CI_Base { - - private static $instance; - - public function CI_Base() - { - self::$instance =& $this; - } - - public static function &get_instance() - { - return self::$instance; - } -} - -function &get_instance() -{ - return CI_Base::get_instance(); -} - - - -/* End of file Base5.php */ -/* Location: ./system/core/Base5.php */
\ No newline at end of file diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index bf412b21d..c50ae6d2b 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -208,25 +208,15 @@ * Load the app controller and local controller * ------------------------------------------------------ * - * Note: Due to the poor object handling in PHP 4 we'll - * conditionally load different versions of the base - * class. Retaining PHP 4 compatibility requires a bit of a hack. - * @PHP4 - * */ - if (is_php('5.0.0') == TRUE) - { - require(BASEPATH.'core/Base5'.EXT); - } - else + // Load the base controller class + require BASEPATH.'core/Controller'.EXT; + + function &get_instance() { - // The Loader class needs to be included first when running PHP 4.x - load_class('Loader', 'core'); - require(BASEPATH.'core/Base4'.EXT); + return CI_Controller::get_instance(); } - // Load the base controller class - require BASEPATH.'core/Controller'.EXT; if (file_exists(APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller'.EXT)) { diff --git a/system/core/Controller.php b/system/core/Controller.php index e250caf4b..c78be8724 100644 --- a/system/core/Controller.php +++ b/system/core/Controller.php @@ -2,7 +2,7 @@ /** * CodeIgniter * - * An open source application development framework for PHP 4.3.2 or newer + * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter * @author ExpressionEngine Dev Team @@ -27,16 +27,16 @@ * @author ExpressionEngine Dev Team * @link http://codeigniter.com/user_guide/general/controllers.html */ -class CI_Controller extends CI_Base { +class CI_Controller { + + private static $instance; /** * Constructor - * - * Calls the initialize() function */ - function CI_Controller() + public function __construct() { - parent::CI_Base(); + self::$instance =& $this; // Assign all the class objects that were instantiated by the // bootstrap file (CodeIgniter.php) to local class variables @@ -46,34 +46,20 @@ class CI_Controller extends CI_Base { $this->$var =& load_class($class); } - // In PHP 5 the Loader class is run as a discreet - // class. In PHP 4 it extends the Controller @PHP4 - if (is_php('5.0.0') == TRUE) - { - $this->load =& load_class('Loader', 'core'); - - $this->load->_base_classes =& is_loaded(); + $this->load =& load_class('Loader', 'core'); - $this->load->_ci_autoloader(); - } - else - { - $this->_ci_autoloader(); + $this->load->_base_classes =& is_loaded(); - // sync up the objects since PHP4 was working from a copy - foreach (array_keys(get_object_vars($this)) as $attribute) - { - if (is_object($this->$attribute)) - { - $this->load->$attribute =& $this->$attribute; - } - } - } + $this->load->_ci_autoloader(); log_message('debug', "Controller Class Initialized"); } + public static function &get_instance() + { + return self::$instance; + } } // END Controller class |