如何在PHP中使用CodeIgniter框架?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
CodeIgniter(以下简称CI,官网以及中国站)是一个流行PHP的框架,小巧但功能强大,简洁轻量同时拥有很好的扩展性,在国内也比较受欢迎。另一方面,CI却没有与时俱进,并不支持PHP5.3之后的一些特性,导致它相对更适合较老一些的项目。虽然如此,CI仍是一个优秀的框架,而且它本身内核较小,源码优雅,适于学习。
& lt; php ?//* BASEPATH/系统/核心/Common.php//引导文件中基准,钩子,配置等都是通过这个函数进行加载的
function , load_class(类,美元,美元directory =, & # 39;图书馆# 39;,,prefix 美元;=,& # 39;CI_& # 39;)
{//记录加载过的类
static _classes 美元;=,数组();//,已经加载过,直接读取并返回
if (收取(_classes美元(美元类)))
{
return _classes美元(美元类);
}
$ name =,假;//,在指定目录寻找要加载的类
foreach (数组(APPPATH, BASEPATH), as 美元路径)
{
if (file_exists(路径。目录强生# 39;美元/& # 39;。类强生# 39;美元。php # 39;))
{
$ name =,前缀。美元类;
if (class_exists(名字)美元,===,假)
{
要求(路径。目录强生# 39;美元/& # 39;。类强生# 39;美元。php # 39;);
}
打破;
}
}//,没有找到
if (name 美元;===,假)
{
退出(& # 39;Unable 用locate 从而specified 类:,& # 39;。类强生# 39;美元。php # 39;);
}//,追踪记录下刚才加载的类,is_loaded()函数在下面
is_loaded($类);
_classes美元(美元类),=,new $ name ();
return _classes美元(美元类);
}//,记录已经加载过的类。函数返回所有加载过的类
function , is_loaded (class 美元;=,& # 39;& # 39;)
{
static _is_loaded 美元;=,数组();
if (class 美元;!=,& # 39;& # 39;)
{
$ _is_loaded[函数(类)美元],=,美元类;
}
return _is_loaded美元;
}//* BASEPATH/系统/核心/Controller.php
class CI_Controller  {
private static $实例;
public function  __construct ()
{
自我::$ instance =,,美元;//将所有在引导文件中(CodeIgniter.php)初始化的类对象(即刚才4,5,6,7,8,9等步骤),//注册成为控制器类的成员变量,就使得这个控制器成为一个超级对象(super 对象)
foreach (is_loaded (), as var 美元;=祝辞,美元类)
{
这→var 美元=,,load_class($类);
}
& lt; span 比;& lt;/span>//加载加载程序对象,再利用装载机对象对程序内一系列资源进行加载& lt; span 比;& lt;/span>
$ this→load =,, load_class(& # 39;装载机# 39;,,& # 39;核心# 39;);
$ this→负载→初始化();
log_message(& # 39;调试# 39;,,“Controller Class Initialized");
}//这个函数对外提供了控制器的单一实例
public static  function , get_instance ()
{
return 自我::$实例;
}
}//* BASEPATH/系统/核心/CodeIgniter.php//,Load 从而,base controller 类
require BASEPATH强生# 39;核心/Controller.php& # 39;;//通过这个全局函数就得到了控制器的实例,得到了这个超级对象,//意味着在程序其他地方调用这个函数,就能得到整个框架的控制权
function 及get_instance ()
{
return CI_Controller: get_instance ();
}//,加载对应的控制器类
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null