专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
51好读  ›  专栏  ›  OSC开源社区

这些最热门的 PHP 框架,哪一款是你的菜?

OSC开源社区  · 公众号  · 程序员  · 2016-12-27 08:34

正文

长按图片识别二维码报名参与码云用户见面交流会


摘要: 本文通过 Symfony 、Laravel 、Yii 三款最流行的 PHP 框架的概述和比较,让开发者能够根据自己的具体情况选择一款最适合自己的框架。


PHP 是世界上最流行的编程语言之一,广泛用于主要的项目中。例如,Facebook 就是利用 PHP 来创建和维护他们的内部系统;WordPress 内部基于 PHP, 作为报答它为超过26%的网站提供了技术支持。而现在 PHP已经为超过82%的网站提供了支持 (Web Technology Surveys 站点能够跟踪的服务器端编程语言)。

本文将通过 3 款最流行的 PHP 框架: Symfony , Laravel , 和 Yii 的比较,来帮助你找到最适合的 PHP 框架。


为什么要选择 PHP 框架?


下面列出了一些使用 PHP 框架进行开发的好处:

  • PHP 框架使开发更快。比如,你不需要写复杂的查询操作来从数据库中检索数据,PHP 提供了增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)的操作。

  • 框架能够使得开发者更容易地扩展系统。

  • 代码维护比普通的 PHP 应用更加容易。应用程序代码将更加简洁。

  • MVC模式 可保证快速发展。

  • 框架更好地保护Web应用程序免受常见的安全威胁。

  • DRY(Don't Repeat Yourself )原则 让最少的代码发挥最大的作用。

以上所列的好处都具有十分重要的意义。尽管利用原生的 PHP 能够写出任何一个应用,但是现在的开发更多地要求使用工具和时间管理技能,以满足市场需求。


如何选择一款适合的 PHP 框架?


回答下面的问题能帮助你更好地选择一款适合的框架:

  • 这个框架的特性和功能是什么?(它提供了我需要的东西了吗?)

  • 这个框架的学习曲线是怎么样的?

  • 这个框架的可扩展性如何?

  • 这个框架对于编码团队的开发和维护具有积极的作用吗?

  • 这个框架提供了长时间支持版本(LTS support) 吗?

  • 这个框架有强大的社区支持吗?


Symfony, Laravel 和 Yii 概述


在深入到技术细节之前,先对三者进行一个概述:


Symfony


Symfony 是一款可重复使用的 PHP 组件,让开发者开发可扩展的、高性能的应用。它有30个组件可供选择,开发者可以在 RAD 环境下自由地进行实验或工作。

一些比较出名的项目,像 Drupal and phpBB 使用的都是 Symfony 框架。事实上,另一款 PHP 流行框架 Laravel 也是建立自 Symfony 。


Laravel


"PHP framework for Web Artisans"——Laravel 作为最流行的 PHP 框架,为开发者提供了一个优秀的社区交流平台(Laravel 的其中一个创始人是 Livecoding.tv Sfiskell )。

2015 年 5 月 Laravel 发布的 5.1 版本将提供长时间支持版本(两年)。5.2 版本也在 2015 年 12 月推向市场。很多托管公司提供 Laravel 支持以及 Laravel 应用托管解决方案。


Yii


国人 薛强 在 2008 年创建的 Yii 是一个安全、快速、高性能的应用/ Web 开发框架。Yii 利用PHP的 Composer 依赖项管理器来处理不同的依赖和安装(下面我们会讲到)。延迟加载技术( lazy loading technique)使得 Yii 成为最快的PHP 框架。

Yii 的另一个不错的特性是整合了 jQuery,使得前端开发者能更快地上手,它利用基架来生成代码。Yii  和 Symfony 一样是借助组件来使应用开发更快。


Symfony, Laravel 和 Yii 比较


这三款框架都非常构建开发 Web 2.0 应用程序,但他们的侧重点又各有不同。下面我们看一下他们各自的特性和安装:


模板引擎


模板引擎能减轻开发者的负担,在写前端代码时提供更好的功能。模板引擎提供了诸如自动 HTML 转义和过滤等功能,并填补了原生 PHP 留下的空白。

Symfony Twig 模板系统

Twig 是一个灵活,快速,安全的 PHP 模板语言。Symfony 的优势是使用了 Twig 来使得开发者编写干净、整洁的代码,并且能够利用原生 PHP 来实现更多的功能。例如,下面冗长的代码实现的是转义(escaping):


Twig 可以用下面的代码实现同样的功能:


你可以进入 Twig 主页 来查看更多的功能。

Laravel Blade 模板系统

跟其他的模板系统不同, Blade 允许你在视图中使用 PHP 代码。而且,由于blade 视图文件存储在 .blade.php extension里面,所以 Blade 对你的应用性能损耗为 0。所有在视图文件里面的代码可以在处理过程中就转换成原生 PHP。

Yii 默认的模板系统

Yii 默认不使用任何第三方的模板系统,但这并不意味着它缺少模板系统的支持,模板系统的选择取决于开发团队,推荐 Twig 和 Smarty。Symfony 使用的是 Twig,所以如果你之前使用过 Symfony,你可能会想选择 Twig 作为你下一个 Yii 项目的选择。

很难定义那款才是最好的。这三个框架都利用了模板系统来更好地编写和维护前端。 Yii 的一个小优势是它没有一个预定义的模板系统。


框架的差异


每个框架的构建都是不同的。Symfony 致力于可重用组件,并提供最好的模块化。另外 Symfony 利用模块和控制器来开发 Web 应用,这可能会让一些刚入门的开发者望而却步。此外,Symfony 还是一个很好的模块化结构的例子,你可以以模块化的方式在你的项目里使用 symfony 提供的 30 个组件。

Yii采用 MVC 框架。(symfony 也支持 MVC 架构,更详细的讨论请看 blog.sznapka.pl 网站的 Is Symfony2 a MVC framework

Symfony 可以用于快速开发复杂的项目。如果说哪个框架最适合复杂的项目的话,symfony 相比于其他框架具有十分优秀的复杂处理的能力 。Yii 也利用了组件,但和 symfony 的模块不一样。Laravel 虽然没有提供一个模块化的方法,但和其他两个框架一样好用。

如果你正在寻找一个模块化的框架的话就选择 symfony。否则,Laravel 和 Yii 都是不错的选择。


安装


这三个框架都提供了多个安装过程,如果您使用 Composer 来处理包,就发现其实所有框架都可以通过Composer 安装。

而对于 Symfony 来说,Composer 的作用尤为重要。因为使用 PHP 的 Composer 依赖项管理器 是处理组件的好帮手。

当然也有其他的安装框架的方式,例如使用简单的归档方法来安装。

安装后,Yii 将提供一个 Web 应用程序和一个基本的模板帮助你的开发;Symfony 2 提供了一个开始演示应用程序;通过 Laravel 安装程序来安装和使用 Composer 来创建项目,使得 Laravel 也能够很容易安装使用。详细信息请查看 Laravel 安装指南


发展







请到「今天看啥」查看全文


推荐文章
悦读文摘  ·  爱的利息(深度好文)
8 年前
冲蒌老伍  ·  生得甘靓仔竟然做D甘噶嘢
8 年前