FleaPHP 开发基础 - 第一部分
时间:2009-04-20
来源:互联网
一、开始前的准备工作
为了避免各种不同开发环境配置对学习 FleaPHP 造成的干扰,因此建议你按照本文配置一个专门用于学习 FleaPHP 的开发环境。
二、FleaPHP 中的 MVC 模式
理解 FleaPHP 中,MVC 模式是如何实现的,以及其特点,可以帮助你更好的运用 FleaPHP。
简单来说,设计模式(Pattern)就是解决某一类问题的特定方法。由于这种特定方法在解决同类问题时具有通用性,所以我们就可以一次又一次的利用已有的经验。具体到程序编写上,就是我们可以用类似的程序结构和代码解决同类型的问题。有关设计模式的详细内容,可以阅读经典著作《设计模式》,这里我就不班门弄斧了。
MVC 实际上是一系列略有不同的模式。FleaPHP 采用的是Passive(被动)MVC 模式。
在 Passive MVC 模式中,Model(模型)完全不知道自己身处于 MVC 结构之中。换句话说,Model 就是一个普通的对象,与 MVC 模式里面的其他组成部分完全没有关联。具体而言,MVC 模式涉及到下列三类对象:
这种分离有许多好处:
应用程序执行流程下面的插图描述了基于 FleaPHP 应用程序的执行流程。
=700) window.open('http://old.fleaphp.org/media/manual/02-app_flowchart.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
=700) window.open('http://old.fleaphp.org/media/manual/02-mvc_in_fleaphp.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
在 FleaPHP 应用程序中,控制器实现为一个类,控制器动作就是该类的一个方法。
在控制器(MVC 模式中的 Controller)方法中,通过调用领域逻辑代码(MVC 模式中的 Model)来处理 HTTP 请求提交的数据并获得结果。然后再将结果传递给视图(MVC 模式中的 View)。视图根据控制器方法提供的参数从模板文件构造最终的页面内容,并返回给浏览器。
三、应用程序入口
与许多开发框架一样,FleaPHP 通常也使用一个入口文件来启动框架,并运行应用程序代码。虽然 FleaPHP 并不要求应用程序必须使用单一的入口文件,不过在本系列文章中,我大部分时间都使用单一入口文件。
单一入口应用程序在 FleaPHP 应用程序使用 MVC 模式时,应用程序的所有功能都通过一个单一的文件来调用。这种通过单一文件来执行所有功能的应用程序,称为单一入口应用程序。有关单一入口应用程序的一些信息,可以参考 ChinaUnix 上的一篇帖子。
许多著名的 PHP 应用程序都是单一入口,例如 Drupal、WordPress、XOOPS、Mambo 等。当然也有 phpMyAdmin 这样的非单一入口应用程序。
创建入口文件现在,我们来创建一个最简单的入口文件。打开文本编辑器,创建 htdocs\index.php 文件,内容如下:
为了避免各种不同开发环境配置对学习 FleaPHP 造成的干扰,因此建议你按照本文配置一个专门用于学习 FleaPHP 的开发环境。
二、FleaPHP 中的 MVC 模式
理解 FleaPHP 中,MVC 模式是如何实现的,以及其特点,可以帮助你更好的运用 FleaPHP。
简单来说,设计模式(Pattern)就是解决某一类问题的特定方法。由于这种特定方法在解决同类问题时具有通用性,所以我们就可以一次又一次的利用已有的经验。具体到程序编写上,就是我们可以用类似的程序结构和代码解决同类型的问题。有关设计模式的详细内容,可以阅读经典著作《设计模式》,这里我就不班门弄斧了。
MVC 实际上是一系列略有不同的模式。FleaPHP 采用的是Passive(被动)MVC 模式。
在 Passive MVC 模式中,Model(模型)完全不知道自己身处于 MVC 结构之中。换句话说,Model 就是一个普通的对象,与 MVC 模式里面的其他组成部分完全没有关联。具体而言,MVC 模式涉及到下列三类对象:
-
[*]M 代表 Model,即模型,用于封装与业务逻辑有关的代码和数据。例如对订单的各种计算。[*]V 代表 View,即视图,用于呈现内容给用户(也就是将程序运行的结果返回给浏览器显示)。例如商品列表页面、后台登录页面。[*]C 代表 Controller,即控制器,用于接收用户输入(通过浏览器发起的请求),然后调用模型(Model)对输入数据进行处理并获得处理结果。最后将结果传递到视图(View),从而让用户能够看到自己操作的结果。例如用户点击删除文章按钮后,控制器调用操作文章的模型,删除掉指定文章,最后通过视图显示成功删除文章的提示信息。
这种分离有许多好处:
-
[*]清晰的将应用程序分隔为独立的部分;[*]业务逻辑代码能够很方便的在多处重复使用;[*]方便开发人员分工协作;[*]如果需要,可以方便开发人员对应用程序各个部分的代码进行测试。
应用程序执行流程下面的插图描述了基于 FleaPHP 应用程序的执行流程。
=700) window.open('http://old.fleaphp.org/media/manual/02-app_flowchart.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
-
[*]index.php 是应用程序的入口文件,负责定义一些应用程序必须的常量,并载入 FleaPHP 框架,然后执行 run() 函数;[*]过滤器链完成 HTTP 请求数据解析、MagicQuotes 处理等工作;[*]应用程序控制根据 HTTP 请求,调用领域逻辑、表数据入口、组件等,并将处理结果传送到视图/模板;[*]视图/模板根据应用程序控制器提供的数据生成输出内容并传送到浏览器。
=700) window.open('http://old.fleaphp.org/media/manual/02-mvc_in_fleaphp.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
在 FleaPHP 应用程序中,控制器实现为一个类,控制器动作就是该类的一个方法。
在控制器(MVC 模式中的 Controller)方法中,通过调用领域逻辑代码(MVC 模式中的 Model)来处理 HTTP 请求提交的数据并获得结果。然后再将结果传递给视图(MVC 模式中的 View)。视图根据控制器方法提供的参数从模板文件构造最终的页面内容,并返回给浏览器。
三、应用程序入口
与许多开发框架一样,FleaPHP 通常也使用一个入口文件来启动框架,并运行应用程序代码。虽然 FleaPHP 并不要求应用程序必须使用单一的入口文件,不过在本系列文章中,我大部分时间都使用单一入口文件。
单一入口应用程序在 FleaPHP 应用程序使用 MVC 模式时,应用程序的所有功能都通过一个单一的文件来调用。这种通过单一文件来执行所有功能的应用程序,称为单一入口应用程序。有关单一入口应用程序的一些信息,可以参考 ChinaUnix 上的一篇帖子。
许多著名的 PHP 应用程序都是单一入口,例如 Drupal、WordPress、XOOPS、Mambo 等。当然也有 phpMyAdmin 这样的非单一入口应用程序。
创建入口文件现在,我们来创建一个最简单的入口文件。打开文本编辑器,创建 htdocs\index.php 文件,内容如下:
作者: jake 发布时间: 2009-04-20


作者: 蓝水宝盒 发布时间: 2009-04-20

作者: 逆水寒 发布时间: 2009-05-09
用户被禁言,该主题自动屏蔽!
作者: 泽蔓昊 发布时间: 2009-07-06
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28