# 总结构
phpcms2008(以下简称为cms) 主要分成[PHPCMS核心]和其它[模块]两大部份。
admin, include, templates 三个目录为核心目录。
ask, brand, comment 这类目录则是模块目录,如 ask 目录就是 ask 模块,目录中放的是 ask 模块的源代码.
另外还有 data, images, uploadfile 三个数据目录,data 主要用于保存文件缓存文件,images 保存 JS 及图片文件,uploadfile 保存上传文件.
# admin 目录
admin 目录用于存放[后台功能控制器](*.inc.php)及[后台模板](templates/*.tpl.php)。
在 cms 中,后台功能控制器都通过 /admin.php 文件作为单一入口进行调用了,也就是说,使用后台功能时浏览器访问的都是 /admin.php 文件.
在 /admin.php 文件中主要进行 cms 环境初始化,引入头文件,函数定义等,登录验证,权限检查,日志记录等操作,最后再根据访问参数包含(include)对应的后台功能控制器文件.
/admin.php 的访问参数有三个:mod,file,代表后台功能控制器文件所属的模块及其文件名,当 mod=phpcms 或为空时表示 cms 的后台功能,这时便是从 /admin 目录中查找对应的后台功能控制器文件.
eg. /admin.php?mod=phpcms&file=content&action=manage&catid=599
mod=phpcms 表示从 /admin 目录中找控制器文件,file=content 表示控制器文件名为 content.inc.php.
所以,访问这个地址会包含 /admin/content.inc.php 文件,从而运行这个后台功能控制器的代码.
为了减少控制器文件的数量,后台功能控制器文件会把多个操作都写在一个控制器文件中,比如 content.inc.php 这个控制器就包含了所有文章操作的后台功能,如添加,修改,删除,审核,列表,搜索,回收站等等等,再根据浏览器 action 参数值决定进行哪一个操作.
控制器中使用 switch 语句判断 action 参数值并进行相应操作,具体流程与实现参考 /admin.php, /admin/content.inc.php 源代码.
# include 目录
include 目录用于存放函数定义文件,类定义文件,配置文件等非直接执行的流程文件.
eg. global.func.php
此为函数定义文件,此文件中定义的是整个 cms 中通用的函数,学习 cms 必读的文件.文件名后序为 .func.php
eg. /include/tree.class.php
此文件为类定义文件,文件名后序为 .class.php,tree 则为类名.
eg. config.inc.php
此为非类或函数定义,但用于 include 的文件,文件名后序为 .inc.php,此文件是 cms 的配置文件,里面是 cms 所有常量配置项,学习 cms 必读文件.
eg. py.dat
这类文件保存的是一些数据,所以也放于 include 目录中.
/include/admin 目录中保存的文件意为后台用到的文件.
eg. /include/admin/global.func.php
整个 cms 后台中通用的函数,学习 cms 必读的文件.
/include/fields 目录保存的是 cms 模型字段类型定义文件,这部份说明留在后面的文档中说明.Vevb.com
学习 cms,基本上需要把 /include 中的文件都看一次.
# templates 目录
templates 目录存放前台页面用到的模板,文件名后序为 .html,目录中第一层表示模板风格:
eg. /templates/default/:默认风格
eg. /templates/yj518/:yj518风格
在风格目录下,模板按模块分,每个模块的模板文件保存在以模块名命名的目录下.
eg. /templates/yj518/phpcms/:phpcms 模块的模板
eg. /templates/yj518/comment/:comment 模块的模板。
# data 目录
data 目录保存的是文件缓存文件。实际上,文件缓存文件保存目录都由 /include/config.inc.php 中的常量进行定义,如 CACHE_PATH 常量定义的就是缓存默认路径,只不过 cms 默认把所有缓存类的目录都放在 data 目录之下。
因为源代码会使用 SVN 进行版本管理,但缓存文件并不属于源代码,而且 data 目录通常很容易就达到数十M以上,把这些文件加入版本管理并不合适。
另外,在上传源代码到服务器时,需要处处小心避免上传缓存文件到服务器,因为缓存文件缓存的是数据库的数据,本地与服务器上的数据不一样,上传了缓存文件很可能导至服务器 cms 运行出错。
所以,data 目录放到源代码目录之外,则 /../data. 现在源代码目录一般为 phproot,则 data 目录的位置为: phproot/../data,与 phproot 同级.
# images 目录
images 保存的是网页中要用到的一些静态文件,如 js 文件,css 文件,图片文件等.
/imgages/js 目录存放的是 js
其它一般是图片或 css 文件.
# uploadfile 目录
uploadfile 目录存放的是通过浏览器上传的文件,基本都是图片文件,容量非常大,服务器上此目录达到 30G 上下.
命名规则为:年/月日/年月日+随机数字.文件后序.
eg./uploadfile/2011/0104/20110104121650167.jpg
基于与 data 目录一样的原因,uploadfile 目录同样是放到源代码目录之外.
新闻热点
疑难解答