十一)CodeIgniter源码分析之Controller.php

 1 <?php  if ( ! defined(‘BASEPATH‘)) exit(‘No direct script access allowed‘);
 2
 3 /**
 4  * CodeIgniter Application Controller Class
 5  */
 6 class CI_Controller {
 7
 8  private static $instance;
 9
10  /**
11   * Constructor
12   */
13  public function __construct()
14  {
15   //通过self::$instance实现单例化,在第一次实例时,这个静态变量实质就是引用了这个实例。
16   //以后都可以通过&get_instance();来获得这个单一实例。
17   self::$instance =& $this;
18
19   //把目前程序已经加载的所有的组件都给这个超级控制器来掌管。
20   foreach (is_loaded() as $var => $class)
21   {
22    $this->$var =& load_class($class);
23   }
24
25   //给超级控制器加载Loader组件,这个组件是它的好助手,很多时候你会经常用到$this->load->xxx()的形式加载某个东西,
26   //这个load就是控制器被构造的时候就伴随存在的。
27   $this->load =& load_class(‘Loader‘, ‘core‘);
28
29   //初始化Loader组件,详细Loader.php
30   $this->load->initialize();
31
32   log_message(‘debug‘, "Controller Class Initialized");
33  }
34
35  public static function &get_instance()
36  {
37   return self::$instance;
38  }
39 }
时间: 2024-12-14 19:36:24

十一)CodeIgniter源码分析之Controller.php的相关文章

CodeIgniter源码分析之index.php

<?php /* *--------------------------------------------------------------- * APPLICATION ENVIRONMENT *--------------------------------------------------------------- * * * //配置项目运行的环境,该配置会影响错误报告的显示和配置文件的读取. */ define('ENVIRONMENT', 'development'); /*

CodeIgniter源码分析(二) 入口文件index.php

1 <?php 2 3 /* 设定环境 */ 4 define('ENVIRONMENT', 'development'); 5 6 if (defined('ENVIRONMENT')) 7 { 8 switch (ENVIRONMENT) 9 { 10 case 'development': 11 error_reporting(E_ALL); 12 break; 13 14 case 'testing': 15 case 'production': 16 error_reporting(0

三)CodeIgniter源码分析之Common.php

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 2 3 // ------------------------------------------------------------------------ 4 5 /** 6 * Common Functions 7 */ 8 9 /** 10 * 为什么还要定义这些全局函数呢?比如说,下面有很多函数,如get_config().confi

二)CodeIgniter源码分析之CodeIgniter.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * 上面: * 这个BASEPATH,就是在入口文件(index.php)里面定义的那个BASEPATH- * 如果没有定义BASEPATH,那么直接退出,下面程序都不执行.其实除了入口文件index.php开头没有这句话之外,所有文件都会有这句话 * 也就是说,所有文件都不能单独运行,一定是index.php在运行过程中把这些文件通 *

(一)CodeIgniter源码分析之index.php

<?php /* *--------------------------------------------------------------- * APPLICATION ENVIRONMENT *--------------------------------------------------------------- * * * //配置项目运行的环境,该配置会影响错误报告的显示和配置文件的读取. */ define('ENVIRONMENT', 'development'); /*

十二)CodeIgniter源码分析之Model.php

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 2 /** 3 * CodeIgniter Model Class 4 */ 5 class CI_Model { 6 7 /** 8 * Constructor 9 */ 10 function __construct() 11 { 12 log_message('debug', "Model Class Initialized&quo

CodeIgniter源码分析之URI.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); // ------------------------------------------------------------------------ /** * URI Class */ class CI_URI { /** * List of cached uri segments */ var $keyval = array(); /** *

十)CodeIgniter源码分析之Output.php

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 2 3 // ------------------------------------------------------------------------ 4 5 /** 6 * Output Class 7 * 8 * Output组件其实有很多有用的方法,不过一般情况下,你不会直接去用到它们. 9 * 这里主要以Output::_dis

七)CodeIgniter源码分析之Benchmark.php

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 2 // ------------------------------------------------------------------------ 3 4 /** 5 * CodeIgniter Benchmark Class 6 */ 7 class CI_Benchmark { 8 9 /** 10 * List of all be