php框架和不用框架
PHP是世界上最受欢迎的编程语言之一,而最近的PHP 7版本使这种服务器端编程语言比以往任何时候都更好,更稳定。
PHP被广泛用于大型项目中。 例如,Facebook利用PHP来维护和创建其内部系统。 WordPress使用PHP为其内部组件提供动力,而这反过来又为超过26%的Web提供动力。 当前,PHP为超过82%的网站提供支持 (Web Technology Surveys网站可以跟踪其服务器端编程语言)。
在本文中,我们将介绍三种最受欢迎PHP框架:Symfony,Laravel和Yii。 我们将研究它们之间的比较,以帮助您确定哪一个最适合您的需求。
为什么选择PHP框架?
使用框架而不是原始PHP开发应用程序有什么意义? 使用框架的一些好处包括:
- PHP框架使开发更快。 例如,您不必编写复杂的查询即可从数据库中检索数据。 PHP框架提供CRUD操作(创建,读取,更新和删除)。
- 框架使开发人员可以轻松地扩展系统。
- 代码维护比使用原始PHP应用程序容易。 应用程序代码简洁明了,易于使用。
- MVC模型可确保快速发展。
- 框架可以更好地保护Web应用程序免受常见的安全威胁。
- 不要重复使用(DRY)原则可确保最少的代码产生最大的影响。
上述好处太重要了,不容忽视。 即使可以使用原始PHP创建任何应用程序,当前的开发标准也需要工具和时间管理技能来满足市场需求。
如何选择一个PHP框架
回答一些问题可以帮助您选择框架:
- 框架的特征和功能是什么? (提供我需要的吗?)
- 框架的学习曲线是什么?
- 框架的可扩展性如何?
- 框架是否由核心团队积极开发和维护?
- 框架是否提供长期支持(LTS支持)?
- 框架是否有强大的社区支持?
Symfony,Laravel和Yii
在深入探讨技术细节之前,这里是竞争者的概述:
Symfony
Symfony是一组可重用PHP组件,使开发人员能够创建可扩展的高性能应用程序。 开发人员拥有30种可供选择的组件,可以完全自由地在RAD环境中进行实验和工作。 Symfony API还可以轻松与第三方应用程序集成,并且可以与流行的前端框架(例如AngularJS)一起使用。
许多受欢迎的项目,包括Drupal和phpBB ,也使用Symfony框架。 实际上,最受欢迎PHP框架Laravel是基于Symfony构建的。
拉拉韦尔
Laravel,被称为“ Web ArtisansPHP框架”,提供了一个优秀的社区,并赢得了最受欢迎的框架 。 (Livecoding.tv上领先的Laravel开发人员之一是Sfiskell 。)
在2015年5月, Laravel宣布 5.1版将提供两年的长期支持。 5.2版本于2015年12月推出。许多托管公司提供Laravel支持并为Laravel应用程序提供托管解决方案。 请查看“ 使用Laravel构建”网站,查看出色的示例项目。
i
Yii由Qiang Xue于2008年创建,它是一个安全,快速,高性能的应用程序/网站开发框架。 Yii利用PHP的Composer依赖性管理器来处理不同的依赖性和安装(稍后会详细介绍)。 由于延迟加载技术,Yii也是最快PHP框架。
Yii的另一个重要功能是jQuery集成。 该集成使前端开发人员能够Swift采用该框架,并使用脚手架生成代码。 与Symfony相似,Yii也利用组件来实现快速的应用程序开发。
他们如何比较
这三个框架都非常适合构建Web 2.0应用程序,但是每个框架都有不同的用途。 让我们看看它们的功能以及它们如何堆叠。
模板引擎
模板引擎可最大程度地减少开发人员的工作量,并在编写前端代码时提供更好的功能。 模板引擎提供自动HTML转义和过滤器等功能,并填补了原始PHP留下的空白。
Symfony Twig模板系统
Twig是一个用于PHP的现代模板系统。 Symfony充分利用Twig的优势,使开发人员可以编写简洁明了的代码,并具有比原始PHP更大的能力。 例如,它需要以下冗长的代码来编写转义:
Twig对以下代码执行相同的操作:
{{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #}
请访问Twig网站以了解有关其功能的更多信息。
Laravel Blade模板系统
与其他模板系统不同, Blade允许您在视图中使用PHP代码。 而且,由于刀片视图文件存储在.blade.php extension
,因此Blade对应用程序性能的开销为零。 在处理过程中,视图文件中的所有代码都转换为原始PHP。
Yii默认模板系统
Yii默认情况下不使用任何第三方模板系统,但这并不意味着它缺少模板系统支持。 模板系统的选择取决于开发团队。 推荐使用Twig和Smarty。 Symfony使用Twig,因此,如果您以前使用过Symfony,则可能要在下一个Yii项目中使用Twig。
这里没有明显的赢家。 这三个框架都使用模板引擎来更好地进行前端编码和维护。 Yii的一个小优势是该框架没有预定义的模板系统。
框架差异
每个框架的创建方式都不相同。 Symfony致力于可重复使用的组件,并提供最佳的模块化。 Symfony还利用该模型和控制器来开发Web应用程序,这对于许多新开发人员来说可能看起来很生疏,但它可以工作。 同样,Symfony是模块化框架的一个很好的例子。 您可以模块化方式在项目中使用Symfony提供的30个组件。
Yii使用MVC框架。 (Symfony确实提供了对MVC的支持,在blog.sznapka.pl网站上的“ Symfony2是MVC框架”中对此进行了更详细的讨论。)
Symfony可用于快速开发和复杂项目。 即使对于哪种框架最适合复杂项目存在争议,Symfony确实比其他框架展示了出色的复杂性处理。 Yii还利用组件,但不像Symfony那样模块化。 Laravel没有提供像其他两个框架一样清晰的模块化方法。
如果您正在寻找模块化框架,请使用Symfony。 否则,Laravel和Yii都是不错的选择。
安装
这三个框架提供了多种安装过程。 如果您使用Composer处理软件包,您将很高兴知道可以通过Composer安装所有框架。
对于Symfony来说,作曲家的角色更为关键。 最好使用Composer PHP依赖项管理器来完成组件处理的想法。
还有其他安装相应框架的方法。 例如,您可以使用简单的存档方法安装框架。
安装后,Yii将为您提供一个Web应用程序和一个可使用的基本模板。 Symfony 2还提供了一个演示应用程序以入门。
Laravel也很容易使用Composer create-project或Laravel Installer进行安装。 请查看Laravel安装指南以获取详细信息。
快速发展
从公司或客户的角度来看,快速将应用程序推向市场以满足消费者需求并击败竞争对手很重要。 Symfony因其强大的框架和强大的社区支持而脱颖而出。 Laravel发展Swift,但是在被认为是PHP开发的实际选择之前,还有一段路要走。 另一方面,如果您不了解任何PHP框架,并希望尽快上手,请考虑使用Laravel。 Laravel的学习曲线很容易,您会在网上找到很多教程来帮助您入门。 Yii将性能提升到一个新的水平,并提供代码支架以加快代码生成和开发速度。
性能
任何应用程序的性能仅在它是使用关键数据的实时应用程序时才重要。 有多少基于Web的应用程序依赖于高性能? 并不是很多,但是框架的性能可以在许多项目中发挥关键作用。
社交网络是实时事件的主要示例,我们的流星节目之一jadson使用Yii2构建了一个移动社交网络。 当选择最佳的框架来编码高性能应用程序时, Yii是我们中最快PHP框架。
Laravel的性能值得商de。 它最慢,但这有关系吗? 您会找到用于提高性能的在线资源,包括GitHub上的指南 ,该指南可以使您的Laravel应用程序更快。
数据库支持
Symfony 2提供了更好的数据库支持。 您可以使用一系列数据库,包括NoSQL和DynamoDB。 Yii和Laravel在这方面也很有用,但是它们支持的数据库少于Symfony。 表1中显示了每个框架支持的数据库。
构架 | 拉拉韦尔 | i | Symfony 2 |
---|---|---|---|
Database | 微软商业智能 MongoDB MySQL PostgreSQL 雷迪斯 SQLite的 | 微软商业智能 | 阿帕奇·杰拉比比特 CouchDB DynamoDB GemFire GraphDB 记忆库 MemCacheDB 微软商业智能 MongoDB MySQL NoSQL Oracle PostgreSQL |
社区和资源
开源框架使用寿命的一个重要预测因素是其社区的实力。 尽管Symfony的框架可能会更成熟,但所有这三个框架均具有牢固的社区。 社区在不断发展,因此预测未来社区的发展充满挑战。
在学习资料和文档方面,Laravel脱颖而出,尽管Symfony和Yii并不落后:
可扩展性
框架是可以通过扩展或软件包进行扩展的结构,从而改善了它们的功能和范围。 在扩展方面,Laravel是赢家。 Packalyst是Laravel软件包的目录,提供9,000多个软件包。 另一方面,Yii和Symfony分别提供约2800个扩展名和2830个捆绑包 。 Laravel的扩展数量是其三倍,因此在这方面似乎是最好的框架。
相似点
我们已经研究了框架之间的差异。 现在让我们看看它们的相似之处:
- 这三个框架都是全栈PHP框架,并提供用于创建Web应用程序的功能,从前端代码编写到后端数据检索。
- 这些项目是开源的,其源代码可以在GitHub上找到,这使得任何人都可以轻松地做出贡献:
- 框架有充分的文档记录,并得到了大型社区的支持。
- 它们每个都支持ORM(对象关系映射)。 ORM非常适合为您的应用程序编写OO代码。
- 它们对于创建Web 2.0应用程序是健壮,安全和可靠的。
还是卡住了吗? 这些清单可能会帮助您缩小选择范围:
Symfony:
- 提供LTS版本,
- 带有许多功能,
- 是目前最稳定的框架
- 是基于组件的框架,并提供广泛的模块化,
- 并拥有许多学习资源的社区。
Yii:
- 带有Ajax支持,
- 它提供了更快的操作,因此非常适合开发实时应用程序,
- 是高度可扩展的。
- 错误处理就在现场,
- 非常适合创建Restful Web Services,
- 并拥有许多学习资源的社区。
Laravel:
- 是2015-2016年最受欢迎的框架,
- 支持Composer进行程序包管理,
- 单元测试很好
- 提供了大量用于扩展框架功能的软件包,
- 并拥有许多学习资源的社区。
结论
在Symfony与Laravel与Yii的战斗中,所有这三个PHP框架都是绝佳的选择,它们为开发人员提供了全栈开发环境。 对我来说,Laravel是一个胜利者,正在崛起,没有停止的迹象。
尽管如此,Symfony和Yii都是出色的框架。 Symfony的根基已建立,并拥有一个更大,更成熟的社区。 Yii是一个独特的框架,功能强大,安全并且可以完成工作。
要查看运行中的框架,请在Livecoding.tv上查看开发人员正在使用哪些框架,该框架具有Symfony , Yii和Laravel的渠道 。 流会话期间,开发人员还可以在聊天或Skype上使用。 关注开发人员,向他们提出问题,并实时获取答案。
额外资源
翻译自: https://opensource.com/business/16/6/which-php-framework-right-you
php框架和不用框架