Controller主要将自己设置成一个Super Class
将CI核心类全部绑定到自己身上 便于用户的controller继承自己后 调用核心类
get_instance 方便核心类里面对其他类的调用
源代码&&注释:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class CI_Controller {
// 将核心类都绑定到 $instance上面
private static $instance;
public function __construct()
{
// 绑定自己
self::$instance =& $this;
// is_loaded函数存储了所有实例化的core class 遍历数组将这些类绑定到Controller
foreach (is_loaded() as $var => $class)
{
$this->$var =& load_class($class);
}
$this->load =& load_class('Loader', 'core');
$this->load->initialize();// 初始化path
log_message('debug', "Controller Class Initialized");
}
// 返回super class
public static function &get_instance()
{
return self::$instance;
}
}
Code Tips:
静态的使用 、Super Class的实现方法、以及引用的使用