请输入您要查询的百科知识:

 

词条 FleaPHP
释义

FleaPHP 的全名是 Fast-Lightweight-Extensible-Automatic PHP web application framework。使用 FleaPHP 框架开发的应用程序能够自动适应各种运行环境,并兼容 PHP4 和 PHP5。FleaPHP 框架简单、清晰,容易理解和学习,并且有完全中文化的文档和丰富的示例程序降低学习成本,为开发者轻松、快捷的创建应用程序提供帮助。

设计目标

FleaPHP 致力于减少开发者创建 Web 应用程序的工作量,并降低开发难度和强度,提高开发效率。

①快速、轻量级,避免臃肿的结构带来的性能损失

由于 PHP 是解释执行,如果花费太多资源在框架本身,显然不适合的。就像一台计算机如果把大量的资源都花在操作系统上了,而应用程序能够得到的资源却少得可怜,显然是无法让用户接受的。

②可扩展、开放性的架构,允许开发者引入自己的组件或者任何成熟的工具库

框架虽然提供了许多组件,但不可能完全满足用户的需求。因此,框架本身应该是松散耦合、可扩展的。开发者可以很简单的为框架加入新的组件。同时,框架的逐步发展也不应该影响框架的核心基础。最后,开放性的架构让开发者在框架中引入其他组件或者工具库时不会遇到任何困难。例如开发者可能会使用 Smarty 来做模板引擎,以及 PEAR 中的一些库来简化开发工作。

③尽可能少的契约,但同时提供足够的自动化能力,减轻开发强度

虽然契约式编程,可以让框架本身的设计变得更简单,开发者也能从框架获得更多的帮助。但太过严格的规则和约定会明显降低框架的适应性,为此需要对两者进行适当的平衡。FleaPHP设计时采用尽可能少的契约,通过更复杂的实现来实现一些自动化能力。或者以最少量的配置信息来帮助框架为开发者提供服务。

④高度灵活的解决方案,提供开发应用程序的大多数基本组件

虽然现在已经有许许多多出色的工具库可供选择。但对于一些平常的需求来说,这些工具库可能具有过度杀伤能力(也就是说工具库本身提供了远远超过需求的功能)。由此带来了学习难度增大、性能降低等问题。为此,FleaPHP 框架提供了一组轻量级的基本组件。这些组件被设计为拥有基本的功能和可扩展。 例如 FleaPHP 附带的基于角色的权限验证组件虽然不如 phpGACL 这样的库功能强大,但却能够解决平常开发都会遇到的典型权限验证问题,并允许开发者自行扩展这个组件。

主要特征

除了 MVC 模式实现、Dispatcher 调度器、模板引擎等常见功能外,FleaPHP 框架还拥有许多独一无二的特点:

①简单、容易理解的 MVC 模型

不像其他流行的框架,FleaPHP 提供的 MVC 模型注重简单和容易理解。例如 FleaPHP 不要求开发者从特定的类派生自己的控制器类和业务模型类。

②易于使用、高度自动化的数据库 CRUD 操作

FleaPHP 采用 TableDataGateway 设计模式来封装数据表操作。FLEA_Db_TableDataGateway 类不但提供了容易使用的 CRUD 操作,还实现了数据表之间的关联操作。同时,FleaPHP 没有像其他框架那样将每一行记录都封装为一个对象(毫无疑问这会产生明显的性能问题),而是利用 PHP 强大的数组来保存和传递数据。

③尽可能少的配置

虽然像数据库联接信息等配置仍然是不可少的,但 FleaPHP 应用程序通常只需要设置几个选项,即可在各种环境中运行良好。而且 FleaPHP 的所有设置都采用 PHP 数组来保存,不但容易理解,而且省掉了解析、缓存等不必要的过程,提高了性能。

④高度可配置能力

虽然 FleaPHP 自动化程度很高,但 FleaPHP 同时也拥有高度的可配置能力。通过覆盖 FleaPHP 默认的选项,开发者可以获得最大程度的灵活性。让开发者可以在适应现有代码、保持开发习惯等各方面获得好处。

⑤自动化的数据验证和转义

即便不做任何处理,程序将数据通过 FLEA_Db_TableDataGateway 提交到数据库前。FleaPHP 也会自动对数据进行验证,并转义特殊字符,最大程度消除 SQL 注入攻击。

⑥丰富的助手对象和组件

FleaPHP 附带了一些非常实用的助手对象,从生成图像验证码、处理文件上传到通用数据验证等。这些助手对象大多是一些独立的对象,完全不依赖于 FleaPHP 框架本身。因此开发者不但可以在 FleaPHP 之外使用这些助手对象,也可以方便的加入自己的助手对象。 组件是比助手对象更为复杂的可重用单元。这些组件包括基于角色的用户管理、脚手架等。利用这些组件,开发者可以很快的完成一些常见任务,并能在这些组件基础上扩展出功能更复杂的组件。

⑦与 Smarty 集成

只需要修改几个选项,FleaPHP 应用程序就可以和流行的 Smarty 模版引擎集成。

⑧100% FREE

当然,最后一点就是 FleaPHP 是一个完全开放源代码和文档(不是那种滑稽的删除了所有注释仅能运行的代码)、不限制使用的项目。你可以自由的学习、使用 FleaPHP,也可以在自己的应用程序中使用 FleaPHP。不管你的应用程序是否是商业应用,都不需要公开你的源代码,从最大程度上保护了你的知识产权。不过如果你愿意将代码反馈到社区,那么大家都会感谢你。

MVC模式

MVC实际上是一系列略有不同的模式。FleaPHP采用的是passive(被动)MVC模式。

passiveMVC模式中,Model(模型)完全不知道自己身处于MVC结构之中。换句话说,Model就是一个普通的对象,一MVC模式里的其他组成部分完全没有关联。

涉及对象

M代表Model,即模型,用于封装与业务逻辑有关的代码和数据。例如对订单的各种计算。

V代表View,即视图,用于呈现内容给用户(也就是将程序运行的结果返回给浏览器显示)。

例如商品列表页面、后台登陆页面。

C代表Contronller,即控制器,用于接收用户输入(通过浏览器发起的请求),然后调用模型对于输入的数据进行处理结果。最后将结果传递到视图,从而让用户能够看到自己操作的结果。例如用户点击删除文章按钮后,控制器调用操作文章的模型,删除掉指定文章,最后通过视力显示成功删除文章的提示信息。

经过这样的简单的分离,我们就把应用程序操作数据的代码(绝大部分web应用程序都是对数据进行操作)和处理用户输入输出的代码分离开来了。

好处

1.清晰的将应用程序分隔为独立的部分;

2.业务逻辑代码能够很方便的在多处被重复使用;

3.方便开发人员分工协作;

4.如果需要,可以主方便开发人员对应用程序各个部分的代码进行测试。

更新

对于大负载网站的重要更新

最近有用户反映在访问量达到数十万pv时,FleaPHP 的缓存文件会出现破损问题。

新的 FleaPHP 1.0.70.1023 版本已经修复了这个缺陷,强烈建议所有开发者更新到最新版本。

最新版本:FleaPHP 1.0.70.1078

开发公司:起源科技

核心成员:Dualface

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 22:15:42