您的位置:首页 > 编程语言 > PHP开发

ci Controller.php解析

2015-11-13 10:44 525 查看
[php]  

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');  

/** 

 * CodeIgniter 

 * 

 * An open source application development framework for PHP 5.1.6 or newer 

 * 

 * @package     CodeIgniter 

 * @author      ExpressionEngine Dev Team 

 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc. 

 * @license     http://codeigniter.com/user_guide/license. href="http://www.2cto.com/kf/qianduan/css/" target=_blank>html 

 * @link        http://codeigniter.com 

 * @since       Version 1.0 

 * @filesource 

 */  

  

// ------------------------------------------------------------------------  

  

/** 

 * CodeIgniter Application Controller Class 

 * 应用程序控制器类 

 * 

 * This class object is the super class that every library in 

 * CodeIgniter will be assigned to. 

 *  

 * 

 * @package     CodeIgniter 

 * @subpackage  Libraries 

 * @category    Libraries 

 * @author      ExpressionEngine Dev Team 

 * @link        http://codeigniter.com/user_guide/general/controllers.html 

 */  

class CI_Controller {  

  

    private static $instance;  

  

    /** 

     * Constructor 

     */  

    public function __construct()  

    {  

        // 通过self::$instance实现单例化,在第一次实例时,这个静态变量实质就是引用了这个实例。  

        // 以后都可以通过&get_instance();来获得这个单一实例。构成这样的单例模式的  

        // 好处就是单例类不会重复占用内存和系统资源而是让应用程序的其他部分更好的使用这些资源。  

          

        self::$instance =& $this;  

          

        // Assign all the class objects that were instantiated by the  

        // bootstrap file (CodeIgniter.php) to local class variables  

        // so that CI can run as one big super object.  

        // 分配在引导文件(CodeIgniter.php)中被实例化的类对象给$this  

        // 这样CI可以运行一个超级对象。其实意思就是  

        // 把目前程序已经加载的所有的组件都给这个超级控制器来掌管。  

        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();  www.2cto.com

          

        log_message('debug', "Controller Class Initialized");  

    }  

  

    public static function &get_instance()  

    {  

        return self::$instance;  

    }  

}  

// END Controller class  

  

/* End of file Controller.php */  

/* Location: ./system/core/Controller.php */  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: