PHPCMS代码解读

PHPCMS代码解读

ID:37711374

大小:49.00 KB

页数:9页

时间:2019-05-29

PHPCMS代码解读_第1页
PHPCMS代码解读_第2页
PHPCMS代码解读_第3页
PHPCMS代码解读_第4页
PHPCMS代码解读_第5页
资源描述:

《PHPCMS代码解读》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、--------------------PHPCMS学习记录------------从index.php开始解读代码:总共3行代码,完成了很多事。define('PHPCMS_PATH',dirname(__FILE__).DIRECTORY_SEPARATOR);includePHPCMS_PATH.'/phpcms/base.php';pc_base::creat_app();第一句,定义phpcms站点根目录PHPCMS_PATH,注意这里定义的目录常量不是服务器根目录,而是phpcms系统的根目录。_FILE_返回当前文件的绝对路径,dirn

2、ame(_FILE_)则可以取得当前文件的绝对目录;DIRECTORY_SEPARATOR显示当前系统的分隔符;第二句,引入一个base.php文件,定义了一个pc_base类,从字面意思上可以看出这应该是个基础类,事实亦如此。根据下文猜想pc应该是phpcms的缩写。引入文件的时候完成了一些基础常量的定义和公用函数库的加载等基础配置。第三句,这句代码完成了系统的初始化,非常强大!下面细细道来它的强大之处:先来看这个creat_app()方法,定义如下:publicstaticfunctioncreat_app(){returnself::load_

3、sys_class('application');}那么又来看load_sys_class()方法:publicstaticfunctionload_sys_class($classname,$path='',$initialize=1){returnself::_load_class($classname,$path,$initialize);}接下来是_load_class()方法:privatestaticfunction_load_class($classname,$path='',$initialize=1){static$classes=

4、array();if(empty($path))$path='libs'.DIRECTORY_SEPARATOR.'classes';$key=md5($path.$classname);if(isset($classes[$key])){if(!empty($classes[$key])){return$classes[$key];}else{returntrue;}}if(file_exists(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')){includePC_PATH.$

5、path.DIRECTORY_SEPARATOR.$classname.'.class.php';$name=$classname;if($my_path=self::my_path(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')){include$my_path;$name='MY_'.$classname;}if($initialize){$classes[$key]=new$name;}else{$classes[$key]=true;}return$classes[$key

6、];}else{returnfalse;}}颠来倒去的一大堆,实际就是加载类函数并实例化这个类,但是值得赞赏和学习的是这个函数逻辑之严密,由此phpcms框架的成熟性可见一斑。这里加载的类函数是PC_PATH.'libs'.DIRECTORY_SEPARATOR.'classes'.DIRECTORY_SEPARATOR.'application.class.php',PC_PATH就是你的phpcms系统下的phpcms文件目录,有点绕,反正不是你的系统根目录就对了,这里印证了上面pc缩写是phpcms的说法接着上面,现在实例化了applicati

7、on类,那么我们就去看看这个类。首先有个构造函数:publicfunction__construct(){$param=pc_base::load_sys_class('param');define('ROUTE_M',$param->route_m());define('ROUTE_C',$param->route_c());define('ROUTE_A',$param->route_a());$this->init();}第一句:加载系统函数,去查base.php文件,load_sys_class()在上面用过,这句就是加载param.clas

8、s.php并实例化一个对象赋给变量$param。转到param类,有构造函数如下:publicfunctio

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。