PHP成为世界上最流行的脚本语言有许多原因:灵活性,易用性等等。但通常只用PHP或者其他语言编码就会显得单调、重复,这时候就需要一个PHP 框架来代替程序员完成那些重复不变的部分。本文通过回答What, When, Why 以及 Which这些问题,将对PHP框架进行全面解析。
PHP框架是什么?
PHP框架提供了一个用以构建web应用的基本框架,从而简化了用PHP编写web应用程序的流程。换言之,PHP框架有助于促进快速应用开发( RAD ),不但节省开发时间、有助于建立更稳定的应用,而且减少了重复编码的开发。通过确保适当的数据库交换和在表现层编码,框架还可以帮助初学者建立更稳定的 应用服务。这可以让你花更多的时间去创建实际的Web应用程序,而不是花时间写重复的代码。
通常认为PHP框架的作用相当于模型-视图-控制器(Model View Controller)。MVC是种编程的架构模式,将业务逻辑从UI中分离出来,允许一个一个单独修改(也称为关注点分离)。在MVC中,Model指 数据,View指表现层,Controller则指应用程序或业务逻辑。基本上, MVC打破了一个应用的开发进程,这样各组件就可以不受影响地各自工作。从本质上讲,这使得用PHP编码更快更简单。
为什么要使用PHP框架?
开发人员使用PHP框架的好处很多,其中之一是加快开发进程。在类似项目中重用代码将为开发者节省大量的时间和精力。框架为执行繁琐的代码任务提供 预建模块,因此,开发人员可以把时间花在实际应用的开发上,而不是每一个项目都重新构建基础功能。
稳定是开发者使用框架的另一个重要原因。虽然简单是PHP最大的优点,很多人也因为这一点喜欢使用这个脚本语言,但它同时也是PHP最大的缺点。一 些开发者尤其是初学者很容易写出低劣的代码,而自己却没有意识到。使用PHP,应用往往会将静态工作加倍,不知不觉中您可能已经在编码时打开了一个大的安 全漏洞,因此可能会受到攻击。重要的是要记住,PHP是一个非常宽容的语言,因此,更重要的是在编程时确保封闭任何漏洞,即便应用看起来可以正常工作。
最后,PHP框架的使用是非常广泛的,而且有许多不同的框架可供选择。许多开发者会选择知名的框架,是因为它的知名度、其开发团队的巨大支持,而且 他们可以通过论坛/社区来与其他使用相同框架的开发者交流,当然你也可以开发自己的框架。这里提醒一下,首先应该检查你的项目来决定是否应该使用一个框 架。你应该问自己:它会节省你和其他使用者的时间和精力么?应用程序的性能会更好么?是否会提高稳定性?如果这些问题你的回答都是是,那么你就该为你的项 目选择一个合适的框架了。
何时使用PHP框架?
这是一个无论有经验的开发者还是初级开发者都共有的问题,而且这个问题也确实没有直接的回答。对于许多初学者来说,一个框架将提供很多简便和稳定, 因此应该尽可能地使用PHP框架。这将有助于减少或消除不良编码,加快开发进程。
另一方面,许多有经验的PHP程序员将框架视为不知道如何写出好的、干净的代码的低级程序员的工具。姑且不论这一点的真假,起码毋庸置疑的是PHP 框架是一个可以用来节省时间并强化自己编码的工具。
当工作的项目时间紧迫时,使用PHP框架就有很多好处,可以大大加快编码进程,因此所以如果你时间紧迫,使用PHP框架就是很好的选择。另一个例子 是,当你所做的项目有大量代码时,也应当考虑使用PHP框架,因为这将有助于减少工作的繁琐度。
寻找一个什么样的PHP框架?
有许多可供开发者选择的PHP框架,甚至还可以创建自己的框架,尽管只建议PHP专家级这样做。当寻找你最需要的PHP框架时,重要的是要搞清楚谁 将自始至终使用或修改你的应用,如果是有很多人做这件事情,那么最好使用流行的PHP框架,这样大部分开发者都不会陌生。另一方面,如果你想构建Web应 用程序为你个人使用,那就最好选择令你满意的PHP框架,而不在乎它在开发者社区中是否流行。
选择PHP框架的参考因素有很多,包括:容易使用、快速开发、性能、开发者中的流行程度、强大的功能,技术支持、论坛等。当你第一次选择PHP框架 时,为了找到一个适合你需求的最佳选择,建议多尝试几个。每个框架都有所不同,并有不同的长处和短处。例如Zend框架由于V3和多样的功能、并且有一个 广泛的支持系统,因而它流行了这么久。相反, CakePHP是另一个晚于Zend框架的PHP框架,相应的支持系统也比较少,但更方便和易于使用。
正如你所看到的,每种类型的PHP框架都有自己的优点,因此,最好反复试验以找出其中哪个最适合你的需要。另一个选择PHP框架的有效方式是咨询你 的同事,看看开发社区里选择哪个。那些真正使用过具体框架的能够明确地告诉你它的易用性、功能、支持可用性、社区内的情况,当然可能还有不足。
使用PHP框架最常见的错误
任何类型的编程中都可能有错误,但是PHP框架有助于显著限制这些错误。重复编码似乎加剧了这种错误,而框架则解决了这一问题。尽管如此,在使用任 何PHP框架时仍要注意。例如,除非你是一位PHP编程的专家,否则你应该总是选择使用流行的框架,有大量的支持和积极的用户群。很多框架的支持很少甚至 没有,它们可能是被PHP知识有限的个别开发者所创建的。这些类型的框架,可能会使你的应用程序无法正常运行,更糟糕的是,可能会给你的网站带来灾难性的 安全问题。
另一些常见的错误是,不能确保你的数据库和Web服务器符合特定框架。例如,Seagull PHP Framework建议如下配置:
* PHP :最低是PHP 4.3.0,PHP 5.1.1或者更高版本更佳,避免任何5.0.x版本中的东西;
* MySQL的:支持MySQL的4.0.x,4.1.x和5.0.x,也可以使用3.23.x;
* Apache:Seagull支持1.3.x以及Apache的2.x系列。
如果你没有满足这些要求,您将无法在你所选的框架中看到最好的性能。即使你是PHP的专家,你也应该经常复习框架的说明文档,确认兼容性后再尝试。
类似于前面提到的常见的错误,不遵循建议的安装进程的话,你的PHP框架也可以给你带来一些令人头疼的问题。以Seagull 为例,在Seagull的wiki有一个详细的框架安装过程,其中有几个关键步骤,很容易被不小心或不知情的开发者忽视。因此你要花费时间来安装框架并遵 循安装说明。
最好的PHP框架有哪些?
过去的几年中,因为PHP已发展成为大多数开发者选择的脚本语言,因而也产生了大量的PHP框架。什么是最好的PHP框架,仁者见仁智者见智,因为 并非每一个框架都能够适合每一个人。以下是5个最佳和最流行的PHP框架选择:
The Zend Framework
Zend Framework在开发者社区中很有人气,其重点是Web 2.0风格的应用程序。由于其大量的党羽、广泛的支持和积极的用户群,Zend被称为PHP Company。Zend即使不是当今最流行的PHP框架,也绝对是之一。它强大的功能能够满足企业级的需求,当然它的使用也需要具备广泛的PHP知识。
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框架为各种技术等级的开发者减少了重复编码的需求、加快了开发进程,并在创建web应用时确保正确的编码。这不仅加快了富应用开发的进程,同 时也通过减少代码的安全漏洞而增强了PHP的安全性。
虽然一些专家级PHP程序员觉得没有必要使用框架开发Web应用程序,但PHP框架仍然可以是快速开发的优秀解决方案,比如在工期很紧的情况下。从 初级到中级开发者,框架可以提高PHP的学习,同时促进良好的代码编写和减少坏代码。
今天有很多的PHP框架可用,因此开发者肯定能从中找到一个适合自己的框架:功能、支持、速度、可扩展性等。开发者广泛使用的一些顶尖的PHP开发 框架包括: Zend Framework,CakePHP,Symfony,Codeigniter以及Seagull。(译/王玉磊)
分享到:
相关推荐
**laravel-v5.2.15:优雅的PHP框架深度解析** Laravel 是一个基于 PHP 的现代、优雅且富有表达力的 web 开发框架。它以其简洁的代码、强大的功能和出色的开发体验赢得了全球开发者们的青睐。在 laravel-v5.2.15 ...
- **框架介绍**:涵盖了常见的PHP框架,如Laravel、Symfony、CodeIgniter等,它们提供了开箱即用的功能,简化开发流程。 - **框架原理**:解析框架的核心组件和工作原理,如路由、依赖注入、模板引擎等。 - **...
《php100:CodeIgniter框架教程(3)(第17讲)》作为一系列针对CodeIgniter框架深度解析的教程之一,旨在帮助开发者掌握CodeIgniter框架的核心功能和最佳实践。通过学习MVC架构、路由系统、自动加载机制、数据库操作...
《基于PHP的Ding框架深度解析》 PHP作为一款广泛使用的服务器端脚本语言,长久以来在Web开发领域占据着重要地位。而“Ding框架”则是PHP开发中的一种工具,它为开发者提供了高效、简洁的开发环境,帮助实现快速构建...
关于LaravelLaravel是一个具有表达力,优雅语法的Web应用程序框架。 我们认为,发展必须是一种令人愉悦的创造力,才能真正实现。 Laravel通过减轻许多Web项目中使用的常见任务来减轻开发工作的痛苦,例如: 。 。 ...
《免费ThinkPHP3.2.3框架深度解析》 ThinkPHP3.2.3是一款深受开发者喜爱的开源PHP框架,以其简洁、高效的特性在Web开发领域占据了一席之地。本篇将深入探讨该框架的核心特点、主要功能以及如何进行实际应用。 一、...
《MiniFramework v2.3.0:PHP轻量级开源框架深度解析》 在Web开发领域,PHP语言凭借其易学易用、高效灵活的特点,一直是开发者们的热门选择。而PHP框架则是加速开发进程,提高代码质量的重要工具。本文将深入探讨...
【标题】Neo: PHP框架深度解析 在编程领域,PHP是一种广泛应用的服务器端脚本语言,尤其在构建动态网站方面有着显著的地位。"Neo"可能是提及的一个PHP框架,虽然信息有限,但我们可以深入探讨PHP框架的基本概念、...
《PHP实例开发源码——YodPHP框架深度解析》 PHP作为一款强大的服务器端脚本语言,被广泛应用于Web开发领域。YodPHP是其中的一个实例开发框架,它旨在简化PHP开发过程,提高代码的可读性和可维护性。本文将深入探讨...
《基于PHP的kyphp框架深度解析》 在Web开发领域,PHP作为一种强大的服务器端脚本语言,因其开源、跨平台的特性,深受开发者喜爱。 kyphp框架,作为PHP的一个重要分支,为开发者提供了高效、易用的开发环境,极大地...
**Yii** 是一款高性能的PHP Web应用程序开发框架,以其简洁高效著称。该框架旨在帮助开发者快速构建安全且高效的Web应用。本文档根据官方中文文档及《Yii权威指南》进行整理,确保内容的准确性和实用性。 **新特性*...
《基于PHP的CanPHP 2.0 Beta PHP框架详解》 在PHP开发领域,框架扮演着重要的角色,它们为开发者提供了高效、稳定的开发环境,并且简化了代码编写过程。CanPHP 2.0 Beta作为一款PHP框架,是众多开发者关注的焦点。...
《基于PHP的DuoLamPHP开源框架深度解析》 PHP作为一款广泛应用于Web开发的服务器端脚本语言,有着丰富的框架支持,其中DuoLamPHP是一个新兴的开源框架,旨在提供高效、灵活和易用的解决方案。本文将深入探讨...
《基于PHP的CrossFrameworkphp开发框架深度解析》 在当今的Web开发领域,PHP作为一款广泛应用的服务器端脚本语言,扮演着至关重要的角色。PHP的框架为开发者提供了高效的开发工具,大大提升了开发效率和代码质量。...
Zend虚拟机是PHP7解析和执行代码的核心。它负责编译源代码为中间表示(opcodes),然后执行这些opcodes。通过分析Zend虚拟机的工作流程,开发者可以更好地优化代码,甚至创建自定义的优化器。 PHP7的基本语法实现...
《TP5框架完整版:深度解析与应用指南》 TP5(ThinkPHP 5)是基于PHP语言的轻量级、高效能的开源Web开发框架,以其简洁的代码结构、强大的功能特性、易于上手的特性深受开发者喜爱。本指南将深入探讨TP5框架的核心...
- **Eloquent ORM**:深度解析Eloquent ORM的使用方法及其优势。 - **结构生成器**:描述如何使用结构生成器创建和修改数据库表。 - **迁移与数据填充**:说明如何通过迁移管理数据库表结构的变化,以及如何填充测试...
《基于PHP的FastAdmin后台开发框架深度解析》 FastAdmin是一款基于ThinkPHP5.1+Vue.js的免费开源后台框架,其20230401版本的发布,为开发者们提供了更加强大和高效的后台开发解决方案。本文将深入探讨FastAdmin的...
**TAF2: PHP框架深度解析** TAF2(Total Application Framework 2)是一个基于PHP开发的全栈式Web应用程序框架。它旨在提供一个高效、灵活且可扩展的平台,帮助开发者快速构建复杂的Web应用。TAF2的核心理念是通过...