以下为十个目前最流行的基于MVC设计模式的PHP框架.
① Yii
CodeIgniter是一个应用开发框架——一个为建立PHP网站的人们所设计的工具包.其目标在于快速的开发项目:它提供了丰富的库组以完成常见的任务,以及简单的界面,富有条理性的架构来访问这些库.使用CodeIgniter开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间.
CakePHP是一个快速开发PHP的框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC.其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的框架,而且这个快速的实现并没有牺牲项目的弹性.
PHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Javascript的纯PHP.它有一个完整的GUI管理员后台界面.其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点.其设计形成了一个简单的学习曲线,PHP开发者无需学习复杂的新术语.PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求.
Akelos PHP框架是一个基于MVC设计模式的web应用开发平台.基于良好的使用习惯,使用它可以完成如下任务:
+方便的使用Ajax编写views
+通过控制器管理请求(request)及响应(response)
+管理国际化的应用
+使用简单的协议与模型及数据库通信
你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP.所以呢,Akelos PHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行.
这个框架的目的在于加速web应用的开发以及维护,减少重复的编码工作.
对于PHP开发者而言,使用Symfony是一件很自然的事,其学习曲线只有短短一天.干净的设计以及代码可读性将缩短开发时间.开发者可以将敏捷开发的原理(如DRY,KISS或XP等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的XML配置文件上.
Symfony旨在建立企业级的完善应用程序.也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义.为了符合企业的开发条例,Symfony还绑定了一些额外的工具,以便于项目的测试,调试以及归档.
PRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架以及相关项目的进行.
Zoop PHP框架,意为Zoop面向对象的PHP框架.
对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用.熟练的开发者则可以更加将Zoop的弹性利用到极致.
Zoop由很多组件和项目集合而成,其中包括smarty和prototype AJAX框架,PEAR模块等.高效的核心组件提供了很多你原本需要自己编码来实现的功能.Zoop内置的纠错功能可以通过配置实现生产环境下的错误日志生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误.
Zoop的一个特别之处在于其GuiControls,在PHP中是一个相当革新的想法.它提供了很多form widgets与验证完整的集合到一起,并形成了一个可以轻松打造个性化GuiControls的框架.
①.0. QPHP
QPHP,意为快速PHP,它是一个与ASP.NET类似的MVC框架.基本上它是这样一个情况:
+整合了Java和C#的美感
+除去了在其他PHP框架中使用的Perl形式的意义含糊的语言
+大量基于OOP的概念
为什么要使用PHP框架?
开发人员使用PHP框架的好处很多,其中之一是加快开发进程.在类似项目中重用代码将为开发者节省大量的时间和精力.框架为执行繁琐的代码任务提供预建模块,所以呢,开发人员可以把时间花在实际应用的开发上,而不是每一个项目都重新构建基础功能.
稳定是开发者使用框架的另一个重要原因.虽然简单是PHP最大的优点,很多人也因为这一点喜欢使用这个脚本语言,但它同时也是PHP最大的缺点.一些开发者尤其是初学者很容易写出低劣的代码,而自己却没有意识到.使用PHP,应用往往会将静态工作加倍,不知不觉中您可能已经在编码时打开了一个大的安全漏洞,所以呢可能会受到攻击.重要的是要记住,PHP是一个非常宽容的语言,所以呢,更重要的是在编程时确保封闭任何漏洞,即便应用看起来可以正常工作.
最后,PHP框架的使用是非常广泛的,而且有许多不同的框架可供选择.许多开发者会选择知名的框架,是因为它的知名度、其开发团队的巨大支持,而且他们可以通过论坛/社区来与其他使用相同框架的开发者交流,当然你也可以开发自己的框架.这里提醒一下,首先应该检查你的项目来决定是否应该使用一个框架.你应该问自己:它会节省你和其他使用者的时间和精力么?应用程序的性能会更好么?是否会提高稳定性?如果这些问题你的回答都是是,那么你就该为你的项目选择一个合适的框架了.
何时使用PHP框架?
这是一个无论有经验的开发者还是初级开发者都共有的问题,而且这个问题也确实没有直接的回答.对于许多初学者来说,一个框架将提供很多简便和稳定,所以呢应该尽可能地使用PHP框架.这将有助于减少或消除不良编码,加快开发进程.
另一方面,许多有经验的PHP程序员将框架视为不知道如何写出好的、干净的代码的低级程序员的工具.姑且不论这一点的真假,起码毋庸置疑的是PHP框架是一个可以用来节省时间并强化自己编码的工具.
当工作的项目时间紧迫时,使用PHP框架就有很多好处,可以大大加快编码进程,所以呢所以如果你时间紧迫,使用PHP框架就是很好的选择.另一个例子是,当你所做的项目有大量代码时,也应当考虑使用PHP框架,因为这将有助于减少工作的繁琐度.
寻找一个什么样的PHP框架?
有许多可供开发者选择的PHP框架,甚至还可以创建自己的框架,尽管只建议PHP专家级这样做.当寻找你最需要的PHP框架时,重要的是要搞清楚谁将自始至终使用或修改你的应用,如果是有很多人做这件事情,那么最好使用流行的PHP框架,这样大部分开发者都不会陌生.另一方面,如果你想构建Web应用程序为你个人使用,那就最好选择令你满意的PHP框架,而不在乎它在开发者社区中是否流行.
正如你所看到的,每种类型的PHP框架都有自己的优点,所以呢,最好反复试验以找出其中哪个最适合你的需要.另一个选择PHP框架的有效方式是咨询你的同事,看看开发社区里选择哪个.那些真正使用过具体框架的能够明确地告诉你它的易用性、功能、支持可用性、社区内的情况,当然可能还有不足.
使用PHP框架最常见的错误
任何类型的编程中都可能有错误,但是PHP框架有助于显著限制这些错误.重复编码似乎加剧了这种错误,而框架则解决了这一问题.尽管如此,在使用任何PHP框架时仍要注意.例如,除非你是一位PHP编程的专家,否则你应该总是选择使用流行的框架,有大量的支持和积极的用户群.很多框架的支持很少甚至没有,它们可能是被PHP知识有限的个别开发者所创建的.这些类型的框架,可能会使你的应用程序无法正常运行,更糟糕的是,可能会给你的网站带来灾难性的安全问题.
另一些常见的错误是,不能确保你的数据库和Web服务器符合特定框架.例如,Seagull PHP Framework建议如下配置:
如果你没有满足这些要求,您将无法在你所选的框架中看到最好的性能.即使你是PHP的专家,你也应该经常复习框架的说明文档,确认兼容性后再尝试.
类似于前面提到的常见的错误,不遵循建议的安装进程的话,你的PHP框架也可以给你带来一些令人头疼的问题.以Seagull 为例,在Seagull的wiki有一个详细的框架安装过程,其中有几个关键步骤,很容易被不小心或不知情的开发者忽视.所以呢你要花费时间来安装框架并遵循安装说明.
最好的PHP框架有哪些?
+The Zend Framework
+CakePHP
从初学者到高级PHP开发者,CakePHP都是一个很棒的选择.它与 Ruby on Rails设计的原则基本相同,主要集中在快速开发方面使其成为一个快速应用开发的优良框架.其迅速增长的支持系统、简单和可扩展性使CakePHP成为当今最热门的PHP框架.
+Symfony
Symfony针对的更多的是高级开发者,也即创建企业级应用的开发者,尤其是Askeet和Yahoo! Bookmarks.这个开源的PHP框架功能全面,但它的主要缺点是速度慢于其他框架.
+CodeIgniter
CodeIgniter以其易用性、性能和速度而闻名.不同于Symfony,CodeIgniter主要针对的是与人共享主机的开发者,或者为小型设备寻找PHP框架的开发者.它提供简单的解决办法,而且有一个扩展库包括视频教程、论坛、用户指南和wiki.初学者应该考虑使用CodeIgniter .
+Seagull
Seagull是一个稳定的用于构建web、命令行和GUI应用的PHP框架.这是一个非常易于使用的框架,非常适合初学者到高级程序员.对于初学者,Seagull有一个范例应用库,可以自己设定后满足自身需求;对于高级开发者,Seagull提供了众多选择包括最佳实践、标准、模块化的代码基,这些都可以帮助快速简单地构建Web应用程序.Seagull有一个活跃的开发者社区,内有大量的支持性文档和说明.
PHP是逻辑语言,数据库是存放信息的.PHP通过逻辑去数据库调用客户想看的数据.
先找到config.php文件,如图:
然后打开配置文件并在其中配置数据库的信息,如下代码:
php
return?array(
//'配置项'='配置值'
'DB_TYPE'???=?'mysql',??//?数据库类型
'DB_NAME'???=?'tpshow',??//?数据库名
'DB_USER'???=?'root',?//?用户名
'DB_PWD'???=?'root',??//?密码
'DB_PREFIX'???=?'tp_'?//?数据库表前缀
);
然后在应用的Home的Controller中,如下图的文件
namespace?Home\Controller;
use?Think\Controller;
class?IndexController?extends?Controller?{
public?function?index(){
$db?=?M("show");?//?实例化show对象
$data?=?$db-find();//读取一条数据
dump($data);//打印数据
}
影响不大.因为http的请求,会受到网络速度的限制.与此相比,程序内部实现造成的影响,可能是很微小的.目前流行的php框架有yii、ci等.用它们编写一个简单的程序,和不使用框架,运行速度几乎没有差别.但使用框架时也需注意一些问题.
一个网页响应速度,和其网站架构、HTML的结构和比较耗时的操作关系较大.
其中网站架构涉及硬件设备和应用程序分布式布署的问题,对性能影响最为显著.一些程序难以解决的性能瓶颈,要用架构设计去解决.比如数据库读写分离.
程序比较耗时的操作,如数据库查询、图片处理、压缩文件等.其中数据库的因素较为普遍.这里要提到一个框架的问题.yii框架自带的数据库模型非常强大,有了它我们基本上不用写SQL语句.但是,它自己生成的SQL语句不一定是最佳的.为了保证网站性能,关键的查询需要自己把握.而且比较复杂的抽象,也会降低性能.它的官方文档中,也不建议在大型网站中使用模型.
综上,框架的特性要选择性地使用.使用前要仔细阅读文档.优化网站要考虑多种因素,而不是仅仅关心程序的实现.要杜绝对程序效率影响不大的"微优化".
个人觉得构建一套框架,首先要明确一下目录结构:
--配置(config)
--类库(libs)
--后台(可以不独立)
--数据处理(c)
--业务逻辑(m)
--展现(v)
--index.php
框架成型,最重要包括:
①.、数据库的链接基类封装(连接、增、删、改、查等),及具体表(例用户表、文章表)对基类的继承实现;
以上只是提供部分思路,多学习、多思考、多练习 坚持积累一段时间之后你就会有更多的收获~~