2012年12月26日星期三

PHPCMS v9的源码初读


前两天读了PHPCMS v9的源码

日期:2011-08-22 19:56:49   来源:cms178.com   作者:CMS178
phpcms v9 我是细读了。很有感受,MVC以前都不怎么去关注,这一回我是真的看了。
一、首先是一个index.php
PHPCMS 入口 。统一入口文件。这个没什么多做解释。
二、下一个文件就是phpcms/base.php
这个文件了,它是PHPCMS框架入口文件,他引入了很多的函数库,如:
pc_base::load_sys_func('global'); ————公用函数库
pc_base::load_sys_func('extention');————扩展库
pc_base::auto_load_func();————自动加载的库
还定义了很多的常量,比如:
//PHPCMS框架路径 时间 还定义了网站路径、JS、图片、CSS的路径
load_config为读取配置文件
还有一个pc_base基类
这个类 初始化PHPCMS的应用程序
提供 类库 函数库 和配置文件 的载入方法
初始化PHPCMS的应用程序开始就是:
三、phpcms/libs/classes/application.class.php文件
最先起作用
在其的构造函数中mvc模型就明朗起来
构造函数先从phpcms/libs/classes/param.class.php参数处理类也就是路由配置中
根据统一入口URL的不同行为获取不同的模型、控制器、事件
三个常量 'ROUTE_M' 、'ROUTE_C' 、 'ROUTE_A'
也就是 index.php?m=**** & c=*** & a=****
具体的获取是这样的:
1、先控制器:"m=$$$" “c=***”
如图:\
在 phpcms\modules\$$$\***.php 必须要有个 $$$的文件夹并且下面要有***.php文件
如果没有的话就是错误:“Controller does not exist.”(控制器不存在)
实例子:phpcms\modules\admin\index.php中
admin 就是m=admin
index.php 就是 c=index
也就是说进入后台首页就是要index.php?m=admin&c=index
2、读取模型中的***.php 中的行为:
如:index.php?m=content&c=index&a=lists&catid=6
m=content 和 c=index 不解释了
a=lists 在 phpcms\modules\content\index.php 中
有个方法就是lists()
这个就是这个模型的行为,如果不写a=*** 默认读取 init()
a=*** 如果在文件中不存在的话有“Action does not exist.”这个错误。
在phpcms\modules\content\index.php这个文件中的
如: a=list&catid=6
先找文件中的list()方法
其中要注意:
getcache('xxxx','xxxxx');
//这是读取缓存
返回
下次再读了
以上是我读代码后简单的解释,说得不怎么专业,但我尽量用我自己的语言去描述了

没有评论:

发表评论