BroPHP1.0手册
目录
1简介 (1)
2环境要求 (1)
3系统特点 (2)
4目录结构 (2)
5单一入口 (3)
5.1概述 (3)
5.2编写规则 (3)
6部署项目应用目录 (4)
6.1概述 (4)
6.2部署方法 (5)
7URL访问 (9)
8默认开启 (10)
9配置文件 (10)
10内置函数 (11)
11控制器 (12)
11.1控制器的声明(模块) (12)
11.2操作的声明 (14)
11.3页面跳转 (15)
11.4重定向 (16)
12模型 (17)
12.1BroPHP数据库操作接口的特性 (17)
12.2切换数据库驱动 (18)
12.3声明和实例化自己定Model类 (19)
12.4数据库的统一操作接口 (21)
13视图V IEW (39)
13.1切换模板风格 (39)
13.2模板文件的声明规则 (40)
13.3display()用新用法 (40)
13.4在模板中可以直接使用的几个常用变量 (41)
13.5在服务器中可以直接使用的几个常用变量 (41)
14自动验证 (41)
15缓存设置 (44)
16调试模式 (45)
17内置扩展类库 (46)
17.1分页类Page (46)
17.2验证码类Vcode (47)
17.3图像处理类Image (48)
17.4文件上传类FileUpload (49)
18自定义扩展函数库 (50)
19自定义扩展类库 (50)
1简介
BroPHP(1.0)是一个免费开源的轻量级PHP框架,允许你把基于BroPHP框架开发的应用去开源或是商业产品发布或销售。BroPHP框架完全采用面向对象的设计思想,并且是基于MVC 的三层设计模式。具有部署和应用及为简单、效率高、速度快,扩展性和可维护性都很好等特点,可以稳定的用于商业及门户的开发。(单服务器的PHP项目大约当前所有网站数量的80%,都可以使用BroPHP框架开发)BroPHP框架包括单入口文件、MVC模式、目录组织结构、类自动加载、强大基础类、URL处理、输入处理、错误处理、缓存机制、扩展类等功能。是专门为《细说PHP》的读者及LAMP兄弟连全体学员提供的“学习型PHP框架”。当然任何PHP应用开发爱好者都可以从BroPHP框架的简单和快速的特性中受益。另外,BroPHP框架的应用不仅使WEB开发变得更简单、更快捷,最主要的目的是让PHP学习者,通过使用本框架从而去了解PHP框架、再去研究框架,最后达到开发自己框架的目的。
可以到www.brophp和bbs.lampbrother(LAMP兄弟连)中下载BroPHP 框架最新版本和最新的帮助文档。
LAMP兄弟连:
3系统特点
BroPHP是“学习型”的超轻量级框架(文件很小,对CPU和内存消耗极低),虽然功能不算很多,但具备了一个框架构成最少应该有的全部功能(包括:MVC模式、目录组织结构、类自动加载、基类、URL处理、输入处理、错误处理、扩展类等)。本框架在已有的功能上,不管从组织结构上,还是从代码质量
上,以及运行效率上都做到了单服务器最佳的效果。使用BroPHP框架适合开发BBS、电子商城、SNS、CMS、Blog、企业门户等中小型系统。另外,本框架特别适合学习PHP使用,可以让你认识框架、分析框架内幕、从而达到编写自己框架的目的。并能通过框架的编写将你零散的各个PHP知识点组织在一起应用,BroPHP框架也将《细说PHP》中各章节知识点整合了起来。在分析框架源码时,PHP的技术点可以参考《细说PHP》各章节。BroPHP框架部分特点如下:
1.第一次访问时为用户自动创建了项目所需要的全部目录结构,用户无需在对组织项目的目
录结构而烦恼。
2.本框架采用模块和操作的方式来执行,简单易用,功能适中,更符合中国WEB程序员的开
发习惯
3.通过本框架编写的项目是完全采用PHP面向对象的思想,符合人类的思维模式,具有独立
性、通用性、灵活性,有利于对项目的维护和调试。
4.基于MVC的开发模式,将视图层和业务层的分离,达到快速的部署,具有很好的可维护性,
以及高重用性和可适用性,特别有利于软件工程化管理。
5.内建丰富的SQL查询机制,操作灵活,简单易用。
6.采用了目前业界最著名的PHP模板引擎Smarty,对于Smarty熟悉的程序员具有很好的模板
开发优势。
7.使用Memcached对SQL和session进行缓存,使用Smarty缓存技术进行页面静态化,提升
效率,减少运行消耗。
8.框架提供一些常用的扩展类,直接使用即可完成一些常见的功能。
9.框架支持自定义扩展类库和扩展函数的使用
10.采用人性化的调试模式,可以快速解决项目开发时遇到的错误和异常。
11.框架源码简单明了结构清析,方便在工作中根据当前项目的需求对框架进行改造。
4目录结构
下例为BroPHP框架的系统目录,在项目开发时直接将brophp目录及子目录的所有文件复制到项目根目
录中即可,并不需要对这个框架源文件有任何修改,但在Linux操作中要注意,将这个框架目录及子目录的权限,设置运行PHP的用户有读的权限即可。
|--brophp目录#BroPHP框架目录
|--bases目录#BroPHP框架基础类存放目录
|--classes目录#BroPHP框架扩展类存放目录
|--commons目录#BroPHP框架通过函数和资源存放目录
|--libs目录#Smarty模板引擎源文件存放目录
|--brophp.php文件#BroPHP框架的公共入口文件
5单一入口
5.1概述
在使用PHP过程化编程时,每个PHP文件都能独立访问并运行,就像一个体育场有多个入口一样,需要在每个入口都要检票和安全检查。而采用单一入口模式进行项目部署和访问,无论完成什么功能,一个项目只有一个统一(但不一定是唯一)的入口,就像一个体育场如果只能从一个入口入场(程序是抽象的,一个入口和多个入口效率是一样的)控制起来则更灵活,几乎没有什么缺点。使用主入口文件部署项目的优点如下:
加载文件方便
在编写和阅读过程化程序代码时,经常会遇到文件之间互相包含,其中包括PHP使用include包括函数库和公共资源文件,也包括在HTML中使用<link>和<script>加载CSS和javaScript文件。项目越大,文件越多越让人感觉头疼,就像一张大网一样将文件交织在了一起,不容易到头绪。而使用单一入口则解决这个难题,在项目应用中用到的任何一个文件,只要相对于单一入口文件的位置查即可。
权限验证容易
如果每个PHP文件都可以独立访问,在做用户权限验证时就需要对每个文件进行判断。而采用单一入口则只需要在一个位置进行判断即可。
URL重写简单
如果每个PHP文件和不同目录下的PHP文件都可以独立访问,则在Web服务器中对URL 进行重新编写时需要很多条规则。而采用单一入口则在URL重写时只需要简单的几条规则即可。
5.2编写规则
例如:index.php
<?phpphp smarty模板引擎
define("BROPHP","./brophp");#定义BroPHP框架所在路径(相对于入口文件,不要加’/’)
define("APP","./");#定义项目的应用路径(’/’可加可不加)
require(BROPHP.'/brophp.php');#加载BroPHP框架目录下的入口文件
入口文件名
可以自己定义名称,例如index.php、admin.php、blog.php之类。
入口文件的编写规则
在入口文件中必需编写三行代码,每一条都不能省略(如上)。
第一行:是定义BroPHP框架源代码所在的路径,这个路径要相对于入口文件的位置,常量名(BROPHP)是固定的不能改变。例如,框架目录和入口文件的位置相同define(“BROPHP”,“./brphp”),如果将入口文件写在项目的admin目录下则是define(“BROPHP”,“../brphp”)。另外,这个路径值最后不要加结尾的”/”。
第二行:是定义项目的应用路径,即自己写的应用放到那个目录下就指定那个目录,常名(APP)是固定的不能改变。例如,define("APP","./"),如果想将项目写在当前项目路径下的admin目录下则可以define("APP","./admin/")。另外,这个路径最后结尾的”/”可以不加。
第三行:是加载BroPHP框架目录下的入口文件,是固定的定写法。
6部署项目应用目录
6.1概述
下例提供的是项目应用目录,只是默认的方式。项目的应用目录结构并不需要开发人员手动创建,只需
要定义好项目的入口文件之后(参与入口文件),系统会在第一次执行的时候自动生成项目必须的所有目录结构。注意:在Linux操作系统中,开发阶段需要让运行PHP用户有可写的权限,而当项目上线运行时,只需要runtime目录及子目录和public/uploads目录需要运行PHP用户有可写的权限,其他目录只要让运行PHP用户具有可读权限即可。
|--index.php文件#主入口文件(可以使用其他名称,也可以放在其他位置)
|--config.inc.php文件#项目的配置文件
|--controls目录#声明控制器类的目录
|--common.class.php文件#默认控制器的基类(用于写权限)
|--index.class.php文件#默认控制器(提供参考)
|--models目录#声明业务模型类的目录
|--views目录#声明视图的目录(Smarty模板存放目录)
|--default目录#默认模板存入目录(可以为项目提供多套模板)
|--xxx目录#特定模块自己创建的目录(xxx和模块同名)
|--xxx.tpl#为特定的操作自己定义的模板文件(xxx和动作同名)
|--public目录#同一应用中公用模板存放目录
|--success.tpl文件#同一应用页面跳转提示模板
|--resource目录#当前项目模板的资源目录
|--css目录#当前项目模板的样式目录
|--js目录#当前项目模板的javascript目录
|--images目录#当前项目模板的图片目录
|--classes目录#用户自定义的扩展类目录
|--commons目录#用户自定义的扩展函数目录
|--functions.inc.php文件#用户将自定义的扩展函数都必须写在这个文件中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论