>백엔드 개발 >PHP 튜토리얼 >CI框架源码阅读---------Controller.php_PHP教程

CI框架源码阅读---------Controller.php_PHP教程

WBOY
WBOY원래의
2016-07-14 10:09:16872검색

[php]  

/** 
 * 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.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 */  
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477662.htmlTechArticle[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 * * @packag...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.