actionbi 发表于 2012-3-29 15:57:43

CodeIgniter源码阅读(4)Controller.php

本帖最后由 actionbi 于 2012-3-29 16:00 编辑

Controller.php中定义了CI_Controller类。比我想象中的要简单很多。
因为这个CI_Controller类是以后所有controller的父类。
很明显,CI_Controller类的构造使用了单例设计模式。
目的是为了让controller不断被构造时,不会因反复创建副本,而是给出一个引用,也就是&instrance。
好处就是单例类不会重复占用内存和系统资源而是让应用程序的其他部分更好的使用这些资源。
CI_Controller的构造过程中加载了system/core下面所有的核心库文件。

本人初读CI源码,目光浅短。望各位大牛指正。actionbi2010@gmail.com


class CI_Controller {      
private static $instance;   
    /**         * Constructor         */      
public function __construct()      
{               
self::$instance =& $this;                        
       foreach (is_loaded() as $var => $class)
               {
                        $this->$var =& load_class($class);
                }
               $this->load =& load_class('Loader', 'core');
                $this->load->initialize();
                log_message('debug', "Controller Class Initialized");
      }
      public static function &get_instance()
      {
                return self::$instance;
      }}




页: [1]
查看完整版本: CodeIgniter源码阅读(4)Controller.php