怎样选择适合本身php框架

PHP是世界上最流行的编程语言之一,而且最近PHP7的发布让这门服务器端的编程语言比以往更加的强大和稳定。php

PHP普遍应用于大型项目,例如Facebook使用PHP来创建和维护他们的内部系统。Wordpress使用PHP做为它的内核使其占据了26%的web项目。目前82%的web网站使用PHP做为其服务器端的开发语言(据Web Tecnology Surveys网站调查)html

在这篇文章内,咱们将一块儿来分析3中最流行的PHP框架:Symfony、Laravel、和Yii。我门经过说明怎么比较它们来帮助你们选择一个最适合本身需求的框架。前端

为何选择使用PHP框架?

是什么让咱们使用框架而不是使用纯粹的php原生语言来开发咱们的应用?使用框架的一些好处以下:laravel

  • PHP框架使开发过程更快,例如,你没必要为从数据库中查询数据去写复杂的查询语句。PHP框架提供了CRUD操做(create建立,read读取,update更新, delete删除)
  • 框架让开发者更加容易的扩展系统
  • 比起普通的php应用代码的维护更简单。应用的代码更加的精简而且易操做
  • MVC模型保证来快速的开发
  • 对于常见的安全威胁,框架能更好的保护应用web应用的安全
  • don‘t repeat yourself(不要重复)原则保证使用最少的代码发挥最大的做用

以上的好处很显著以至于不容忽视。即便使用原生的PHP也能用来开发任何的应用,可是当前的开发规范要求使用工具和时间管理的技巧来知足市场的须要。web

怎样选择PHP框架

回答下面的一些问题能帮助你选择适合本身的框架:ajax

  1. 这个框架有哪些特色和功能?(它提供了个人需求吗?)
  2. 这个框架学习容易吗?
  3. 这个框架可扩展行强吗?
  4. 这个框架的核心团队是否在积极的开发和维护它呢?
  5. 这个框架提供长期支持吗?
  6. 这个框架有强大的社区支持吗?

Symfony、 Laravel和Yii

在深究技术细节以前,咱们先来总体介绍下这3个竞争者数据库

Symfony

Symfony 是一套可复用的PHP组件,这些组件可使开发者开发出易扩展和高性能的应用。有30个组件可供选择,开发者有彻底的自由在RAD环境中实验和工做。Symfony 的APIs也使得它很容易的与第三方应用整合,它也能与流行的前端框架一块儿使用,好比AngularJs。编程

不少的流行项目包括Drupal和phpBB也使用了Symfony框架。实际上目前最流行的框架Laravel也是创建在Symfony上。php框架

Laravel

Laravel做为“为web艺术家而生的框架”被普遍使用,它提供了极其优秀的社区并得到了最流行的框架的称号。安全

在2015年5月 Laravel 发布声明 Laravel5.1版本将提供2年的长期支持。2015年11月5.2版本推出。不少托管提供商提供Laravel支持并提供Laravel应用的托管解决方案。

Yii

Qiang Xue 在2008年推出了Yii框架,Yii框架安全、快速、性能卓越。Yii使用Composer做为它的php依赖管理工具来帮助处理不一样的依赖和其安装。得益于惰性加载技术的使用,Yii框架是目前速度最快的框架。

Yii另外一个伟大的特性是整合来JQuery。这种整合使得前端的开发者开始的拥抱它,而且它使用脚手架生成代码,相似与Symfony。Yii也使用组件来快速开发应用。

怎样比较它们

这3个框架开发Web2.0应用都很是的好,可是各自服务与不一样的目的。让咱们看看它们的特性以及它们目前的状态。

模版引擎

模板引擎在编写前端代码时,简化开发者的工做并提供更好的功能。模版引擎提供的特性包括自动html代码转义和过滤、添补原生php留下的间隙。

Symfony Twig 模板系统

Twig是一个PHP的现代模板系统。Symfony利用Twig的优点使开发者写出更加干净、简洁的代码。

详见Twig网站学习更多的关于twig的特性

Laravel Blade 模板系统

不像其余的模板系统,Blade让你在视图中是用PHP代码。而且Blade对应用的性能影响几乎为零,由于视图文件都是以.blade.php做为扩展名。视图文件全部的代码在程序运行中都转换为了原生的php。

Yii 默认模板系统

Yii默认没有使用任何第三方模版系统,可是这并不意味者它缺乏对模版引擎的支持。模板引擎的选择取决去开发团队。Yii推荐使用Twig和Smarty模板引擎。介于Symfony使用的是Twig,因此若是你之前使用过Symfony,你可能想在你的下一个Yii框架中使用Twig。

这里没有明显的优胜者。3个框架都使用模版引擎使前端代码的的书写和维护更简单。Yii的一个小优点是它没有提早预设一个模板系统。

框架不一样点

每一个框架都不同。Symfony致力于提供可复用的组件和提供最好的模块化支持。Symfony也使用模型和控制器来开发web应用,对于新的开发者这看起来有点老套。可是确实好用。对于模块化框架来讲Symfony是一个很好的例子。你可使用模块化的方式在你的项目中使用Symfony提供的30个组件。

Yii框架使用MVC模型(Symfony也提供对MVC的支持)

Symfony 能够用来快速开发和用于复杂项目。即使有对哪一个框架最适合开发复杂项目有争议,Symfony相对于其余框架显示出了卓越的复杂处理能力

Yii也使用组件可是不像Symfony同样模块化。Laravel不像另外2个框架同样提供激进的模块化支持。

若是你正在寻找一个模块化的框架,就去选择Symfony,其余的话,Laravel和Yii都是很好的选择。

安装

这三个框架提供了许多安装程序。若是你用Composer去处理安装包,你会很高兴发现,全部的框架均可以经过Composer安装

对Symfony而言,Composer的做用更加关键。经过使用PHPComposer依赖管理器,组件处理的想法能更好的实现。

各个框架还有其余的安装方式。例如,您可使用简单的归档方法安装框架。

安装完成后,Yii为你提供了一个Web应用程序和一个基本模板来工做。Symfony2还提供了一个开始的演示程序。

Laravel经过Composer的composer create-project命令或者经过Laravel安装器也能简单的进行安装。详情请查看laravel安装指南。

快速开发

从公司或客户的角度来看,快速地将应用程序推向市场以知足消费者的需求并击败竞争对手是很重要的。 symfony有一个强大社去支撑,并做为一个健壮的框架而凸显出来。Laravel正在迅速成长,但在被视为PHP实际的开发选择以前,Laravel还有很长的路要走。 另外一方面,若是你不认识任何PHP框架,又想尽快上手,那么能够考虑Laravel。Laravel有一个简单的学习曲线,你会发现网上不少教程来帮助你开始。 Yii的性能有一个新的水平,并为快速的的代码生成和开发提供了代码脚手架。

性能

任何应用程序的性能只关系到它是不是一个使用关键数据的实时应用程序。有多少依赖高性能的web应用程序?并非不少,可是框架的性能在许多项目中能够起到关键的做用。

社交网络是实时事件应用的首选例子,咱们的一个明星的产品-jadson使用yii2建了一个移动社交网络,当初咱们为编写高性能的应用而选择一个最好的框架时。Yii做为最快的PHP框架而凸显出来。

Laravel的性能是一个很有争议的问题。它是最慢的,但这有关系吗?你会找到在线资源去加速它的性能,包括GitHub上的指南让你的laravel应用变得更快。

数据库支持

Symfony 2提供了更好的数据库支持。你可使用一组数据库,包括NoSQL和DynamoDB。 Yii和Laravel在这方面也一样有用,但他们支持的数据库比symfony的少。每一个框架支持的数据库如表1所示。

社区和资源

开源框架持久性的一个重要预测因素是其社区的力量。这3个框架都有稳定而坚实的社区,尽管Symfony的社区可能更成熟一些,可是社区在进化,因此对社区的将来的动态预测很难。 说到学习资料和文档,Laravel突出出来来,尽管Symfony和Yii并无落后不少。

可扩展性

框架是能够经过扩展或包进行扩展的结构,用来改进了它们的功能和范围。说到扩展,Laravel是赢家。packalyst一个laravel扩展包的库提供超过9000的扩展包。另外一方面 Yii和symfony分别提供了2800左右的扩展和2830的包,Laravel提供来超过3被的扩展。Laravel在这方面彷佛是最好的框架。

相同点

咱们已经研究了框架之间的差别。如今让咱们看看它们的类似之处:

  • 3个框架都是全栈的php框架,从前端代码书写到后段数据获取,都提供了构建web应用的功能
  • 项目都是开源的,而且都托管在GitHub上,这使得任何人都能容易的贡献本身的代码
  • 全部的框架都有很好的文档注释并都与一个庞大的社区支持
  • 都支持ORM(Object Relationship Mapping 对象关系映射)。ORM很是适合编写应用程序的面向对象代码。
  • 对于开发Web2.0应用都足够强健、安全和可靠

仍然迷惑?也许这些列表有助于你缩小选择范围:

Symfony:

  • 提供长期支持版本
  • 带有大量的特性
  • 它是目前最稳定的框架
  • 基于组件的框架,提供可扩展的模块化功能
  • 有强大的社区支持和丰富的学习资源

Yii:

  • 天生带有ajax支持
  • 由于提供更快的操做,它是开发实时应用的最好选择
  • 高度可扩展
  • 错误处理强大
  • 有利于开发Restful风格Web服务
  • 有强大的社区支持和丰富的学习资源

Laravel:

  • 最受欢迎的框架
  • 支持Composer管理扩展包
  • 单元测试作得很好
  • 提供了大量的扩展包来扩展框架的功能
  • 有强大的社区支持和丰富的学习资源

结论

在Symfony与Laravel与Yii的竞争中,3个框架都是极好的选择,都为开发者提供来全栈的开发环境。对于我来讲,做为一种新兴的且没有中止的迹象的明星-Laravel是一个胜利者。

本文为翻译文档-- 原文连接

相关文章
相关标签/搜索