《HongCMS开发者手册》二次开发指南
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《HongCMS开发者手册》--二次开发指南
模板语法参阅:/bbs/?thread-index-fid-1-tid-19.htm
一、前言:
说实在的,很怕写文档,特别是这种开发文档,无法知道别人需要什么样或者说什么程度的描述,自己高兴的事别人未必开心。所以,这个文档总的想法是将重点介绍清楚,让用户了解系统脉络,细枝末节的技术google就行了。
前些日子因参与其它公司的项目,研究了些PHP开发框架,如CI, ThinkPHP等这些,觉得这些小型框架对我来说很不爽,因为本人一直
喜欢4S的开发理念,即:Safe, Simple, Small, Stable (安全,简单,小巧,稳定),不刻意追求大而全的东西,认为简单是最美的。
这和性格有关,也很难改变。就拿CI来说吧,前台游客只要一进入网站,就有至少1个数据库写入及1个session生成,一个session在服务器就要写入一个文件,试想如果网站同时来了1万个用户访问,文件IO开销巨大,说得不好听点,服务器可能就死球了。对于框架,业内一直有这么一句话:学之者生,用之者死。本人觉得这句话很值得琢磨一下。
如今没有几个公司不要求程序员有MVC的开发理念,MVC确实有好处,本人也喜欢,但也不去刻意追求. 当然也有反对MVC的, 包括PHP创始人。HongCMS开发中有V和C,M基本没有,因为不需要或者说使用M编程反而累了,但完全可以使用Model,系统框架
已经为它设计好了,程序包models/目录下有实例。特别是后台admin/models/目录下的admin.php, 它就是后台用户(管理员)的模型。说白了,模型就是一些类啦。
HongCMS系统框架APP.php非常小巧,仅5K大小,再加上XTpl超小模板引擎,HongCMS核心非常小巧、快速和高效。有基础的朋友,如果对HongCMS进行二次开发,或是参考其中的理念,足可以开发出大型系统来。
这些思想,加上多年做双语企业网站的经验,同时有朋友要我开发一个中英双语的小型企业网站,于是HongCMS出生了。对于一些从事网站开发的朋友来说,我想HongCMS更适合成为你的工具,像很多使用weenCompany的用户能赚钱一样,使用HongCMS当然能赚钱,同时在技术上会有更大的提高。对于一般用户,HongCMS是中英文网站系统,对于懂程序的朋友来说,它是小型开发框架,开发由你。
二、目录布局与重要文件介绍
1. 根目录下的几个文件
.htaccess: 此文件是apache服务器下的伪静态规则文件,另外此文件还限制了浏览器可以访问或进入哪个目录或文件夹,增强了系统安全性。如果你添加了一个目录如blog,这个目录下独立安装了另一个blog系统,那么需要修改htaccess文件,以便允许浏览器访问blog目录。
index.php: HongCMS是单入口系统,所有前台页面的访问均从index.php进入。
robots.txt: 此文件列举了一些目录,禁止SEO进入。基本上HongCMS除index.php 文件夹都不希望SEO进入,因为SEO在其它目录或文件上抓不到有用的信息,但如果进入的话,反而可能会增加网站负担。
2. Admin目录: 后台管理目录, 里面存放的是后台管理入口文件,控制器和模型,也就是说,基本上后台管理的功能由其中的文件来完成。
3.0.0版本开始,后台管理有自己独立的入口文件index.php,同时后台管理目录可以任意修改。后台管理相当于一个独立的模块。
3. Cache目录: 此目录动态保存模板的缓存文件,一般不需要手动管理其中的文件。
4. Config目录: 系统配置目录,此目录下的config.php保存数据库连接信息等;settings.php保存网站基本设置信息,可以在后台管理中设置其中的信息,当然也可以手动直接修改其中的内容。
5. Controllers目录: 前台控制器文件目录,基本上前台的功能由此目录下的文件完成。
6. Images目录: 此目录为预留目录,在.htaccess中已经设置好了浏览器可以进入此目录,方便用户上传一些图片等,然后在文章内容中直接显示。
7. Includes目录: 此目录存放函数库文件或系统加载的核心文件,在core.php中对系统加载进行基本配置,functions.admin.php后台管理的函数库文件,
mon.php前台需要使用的函数库文件,functions.global.php里面是前后台都需要使用的函数库文件。
8. Install目录: 系统安装目录,在浏览器中进入此目录安装HongCMS。
9. Medels目录: 前台模型文件目录。
10. Public目录: 此目录存放前台模板文件,后台模板文件,前后台的JS文件等。
11. System目录: 系统框架核心目录,其中的backup目录用于保存后台管理中的数据库备份文件,errors目录中是系统出错时显示的错误信息页面。plugins目录的是系统需要使用的一些类文件,如前后台的基础类文件,数据库类文件,JSON类文件,XTpl模板引擎类等等。system目录中的APP.php文件最重要,它是系统框架的核心类文件。可以这么说,系统的MVC开发模式由它确定。有兴趣的朋友可以仔细地分析一下此文件,有利于理解框架。
12. Uploads目录: 很明显,此目录将保存的是后台管理中各种上传文件,包括编辑器中上传的各种文件。
三、core.php系统加载配置核心文件
上面介绍了HongCMS为单入口网站系统,基本上所有的动态功能或动作均由根目录下的
index.php文件引导完成。打开index.php文件,我们看到引入了includes/core.php,可见core.php文件在系统加载方面起作核心作用。
core.php需要仔细了解一下,其中最重要的是__autoload自动加载魔术函数,这个函数作用巨大,它允许实例化扩展类或模型类时,不需要在程序中加载相应的类文件,PHP服务器会自动加载相应的类文件,所以说它是魔术函数。这个自动加载函数主要是配合核心框架文件system/APP.php工作的。APP.php是核心框架文件,它的主要工作是对URL进行路由,简单地说就是把URL中的各种参数解释成相应的PHP程序文件去执行相关动作。APP.php文件的工作机制,有兴趣的朋友可以分析它,此文件很小仅5K,但它是框架的核心。
然后,在core.php文件中定义了一些前后台公共的常量,判断前台语言。再就是实例化数据库类,为后面的工作做准备。做二次开发的话,此文件一定要比较熟悉,因为它为系统加载运行做了最开始的一些准备工作。
四、URL路由及动作控制
APP.php核心框架文件的主要工作是解释URL中传递的各种参数到相应的程序中,然后由程序中的动作来完成相关功能,也就是说APP.php行使的路由功能。下面,我们来看几个具体的实例:
例1: / admin/ index.php / products / save