原文:http://blog.csdn.net/dongnanyanhai/article/details/7561567
最近想建一个网站,试了很多cms,有dedecms 及phpcms 等,无奈功能都太强,虽然都有很大自由可以作二次开发,但是学习这些cms二次开发的成本,比自己制定一个刚好满足自己需要的还要大!犹豫许久,昨晚才彻底决定放弃实用cms!
今天上班不用干活,无奈,花一个下午看了lazyphp3的代码!
(一)
lazyphp3是一个小巧的php mvc框架,由新浪 @easy 主导的一个项目,可以在一般的php主机上使用,也支持新浪云计算平台,lp只包含一个frontcontroller+layout系统+20个常用函数,非常容易就可以掌握,当然,对初学者而言,这个框架最郁闷的估计就是缺少实例了。
lazyphp3详细简介请查看:http://ftqq.com/lazyphp/
lazyphp3的下载地址在github :https://github.com/easychen/lazyphp 打开后直接点downloads即可下载整个项目。
项目文件及功能如下:
01lazyphp
02│ index.php //项目入口文件
03│ readme.md //lazyphp说明文件,markdown格式
04│
05├─config //项目配置
06│ app.config.php //项目配置文件
07│ db.config.php //项目数据库配置文件
08│
09├─controller //项目逻辑控制所在文件夹
10│ app.class.php //类
11│ default.class.php //项目默认控制器
12│
13├─lib //项目函数库
14│ app.function.php //函数库
15│
16├─local //项目本地化配置
17│ zh_cn.lang.php //中文
18│
19├─model //项目模块
20│ readme //说明,空文件
21│
22├─view //项目页面显示模板(详细文件列表略)
23│
24├─static //项目静态文件,包括css,js代码及图像.
25│
26├─test //jsunit及phpunit测试框架文件(详细文件列表略)
27│
28└─_lp //lazyphp3框架
29 │ lp.init.php //框架入口
30 │ st.init.php //可能是sae版框架的入口
31 │
32 ├─core //框架核心
33 │ ├─config
34 │ │ core.config.php //框架配置文件
35 │ │
36 │ ├─controller
37 │ │ core.class.php //框架逻辑控制类
38 │ │
39 │ ├─lib
40 │ │ core.function.php //核心函数库
41 │ │ db.function.php //数据库操作函数
42 │ │ db.sae.function.php //sae数据库操作函数
43 │ │
44 │ ├─model //模块
45 │ │ readme
46 │ │
47 │ └─view //框架默认模板(详细文件列表略)
48 │
49 └─simpletest //框架测试文件(详细文件列表略)
在这里先要强调一点,我们从github网站上所下载的这些文件,其实是一个基于lazyphp3框架写出来的网站,将这些文件放到php服务器就可以直接运行了,而lp3框架的核心文件在则是在这个项目的“_lp”文件夹内!
(二)
现在,我们来看一下这个基于lazyphp的网站是如何运行的,先从网站的入口(根目录下的index.php)开始:
index.php的主要代码如下:
1/**** load lp framework ***/
2define( 'ds' , directory_separator ); //directory_separator是php里的一个内置命令,用来将解决win与linux下的路径区分问题
3define( 'aroot' , dirname( __file__ ) . ds );//这里定义的aroot是网站所在根目录,而不是lp框架所在根目录
4
5//ini_set('include_path', dirname( __file__ ) . ds .'_lp' ); //
6include_once( '_lp'.ds .'lp.init.php' );//载入lp框架的_lp文件夹内的lp.init.php文件
7/**** lp framework init finished ***/
在定义网站根目录地址给常量aroot后,随即载入lazyphp3框架初始化文件lp.init.php,我们跟过去看一下: lp.init.php文件主要做了4件事:
1、定义:定义框架根目录、框架核心目录,并设置php报错级别:
01if( !defined('aroot') ) die('no aroot!');
02if( !defined('ds') ) define( 'ds' , directory_separator );
03