作者:Calix
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * CodeIgniter Application Controller Class */ class CI_Controller { private static $instance; /** * Constructor */ public function __construct() { //通过self::$instance实现单例化,在第一次实例时,这个静态变量实质就是引用了这个实例。 //以后都可以通过&get_instance();来获得这个单一实例。 self::$instance =& $this; //把目前程序已经加载的所有的组件都给这个超级控制器来掌管。 foreach (is_loaded() as $var => $class) { $this->$var =& load_class($class); } //给超级控制器加载Loader组件,这个组件是它的好助手,很多时候你会经常用到$this->load->xxx()的形式加载某个东西, //这个load就是控制器被构造的时候就伴随存在的。 $this->load =& load_class('Loader', 'core'); //初始化Loader组件,详细Loader.php $this->load->initialize(); log_message('debug', "Controller Class Initialized"); } public static function &get_instance() { return self::$instance; } }
转载请注明:Calix » CodeIgniter源码分析之Controller.php