目录
为什么选择使用PHP框架?
怎样选择PHP框架
Symfony、 Laravel和Yii
Symfony:
Laravel:
Yii:
怎样比较它们
模版引擎
Symfony Twig 模板系统
Laravel Blade 模板系统
Yii 默认模板系统
框架不同点
安装
快速开发
性能
数据库支持
社区和资源
可扩展性
相同点
结论
首页 后端开发 php教程 怎样选择适合自己php框架

怎样选择适合自己php框架

Apr 16, 2018 pm 02:36 PM
php 框架 自己

这篇文章主要介绍的内容是关于怎样选择适合自己php框架,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

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

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

在这篇文章内,我们将一起来分析3中最流行的PHP框架:Symfony、Laravel、和Yii。我门通过说明怎么比较它们来帮助大家选择一个最适合自己需求的框架。

为什么选择使用PHP框架?

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

  • PHP框架使开发过程更快,例如,你不必为从数据库中查询数据去写复杂的查询语句。PHP框架提供了CRUD操作(create创建,read读取,update更新, delete删除)

  • 框架让开发者更加容易的扩展系统

  • 比起普通的php应用代码的维护更简单。应用的代码更加的精简并且易操作

  • MVC模型保证来快速的开发

  • 对于常见的安全威胁,框架能更好的保护应用web应用的安全

  • don‘t repeat yourself(不要重复)原则保证使用最少的代码发挥最大的作用

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

怎样选择PHP框架

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

  1. 这个框架有哪些特点和功能?(它提供了我的需求吗?)

  2. 这个框架学习容易吗?

  3. 这个框架可扩展行强吗?

  4. 这个框架的核心团队是否在积极的开发和维护它呢?

  5. 这个框架提供长期支持吗?

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

Symfony、 Laravel和Yii

在深究技术细节之前,我们先来整体介绍下这3个竞争者

Symfony

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

很多的流行项目包括Drupal和phpBB也使用了Symfony框架。实际上目前最流行的框架Laravel也是建立在Symfony上。

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所示。

怎样选择适合自己php框架

社区和资源

开源框架持久性的一个重要预测因素是其社区的力量。这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是一个胜利者。

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

相关推荐:

php框架CodeIgniter中的redis怎么使用


以上是怎样选择适合自己php框架的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

我后悔之前不知道的 7 个 PHP 函数 我后悔之前不知道的 7 个 PHP 函数 Nov 13, 2024 am 09:42 AM

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

php程序在字符串中计数元音 php程序在字符串中计数元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? 什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

See all articles