原文: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即可下载整个项目。
项目文件及功能如下:
03│
README.md //LazyPHP说明文件,Markdown格式
06│
app.config.php //项目配置文件
07│
db.config.php //项目数据库配置文件
09├─controller //项目逻辑控制所在文件夹
11│ default.class.php //项目默认控制器
14│
app.function.php //函数库
22├─view //项目页面显示模板(详细文件列表略)
24├─static //项目静态文件,包括css,js代码及图像.
26├─test //JSUnit及PHPUnit测试框架文件(详细文件列表略)
30 │
st.init.php //可能是SAE版框架的入口
34 │
│ core.config.php //框架配置文件
37 │
│ core.class.php //框架逻辑控制类
40 │
│ core.function.php //核心函数库
41 │
│ db.function.php //数据库操作函数
42 │
│ db.sae.function.php //sae数据库操作函数
47 │
└─view //框架默认模板(详细文件列表略)
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框架所在根目录
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 );