首页 后端开发 php教程 一些PHP 框架

一些PHP 框架

Aug 21, 2017 am 10:18 AM
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):



<?php echo $var ?> <?php echo htmlspecialchars($var, ENT_QUOTES, &#39;UTF-8&#39;) ?>
登录后复制

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



{{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #}
登录后复制

你可以进入 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 安装指南。

发展

从公司或客户的角度来看,迅速将应用程序推向市场以满足消费者的需求并击败竞争对手是很重要的。 Symfony 由于其背后有强大的社区支撑而站稳脚跟; Laravel 正在快速成长,要被开发者完全认可仍有很长的路要走。另外,如果你还不知道任何 PHP 框架,希望尽快选择一款适合你的,Laravel 是个不错的选择,它有一个简单的学习曲线,并且有很多在线教程帮助你开始使用。Yii 将性能提升到一个新的水平,并提供代码基架,以便更快地生成和开发代码。

性能

任何应用程序的性能只有当它使用关键数据的实时应用程序时才有意义。有多少基于 Web 的应用程序依赖于高性能呢? 并不多,但是框架的性能在许多项目中可以发挥关键性的作用。

社交网络是实时事件的主要例子,我们的明星流媒体之一——jadson 就使用了 Yii2 建立移动社交网络。最快的 PHP 框架 Yii 毫无疑问是高性能应用程序编码框架的最佳选择。

Laravel 的性能是非常有争议的。它是最慢的,但这重要吗? 您可以找到很多用于加快性能的在线资源,包括使 Laravel 应用程序更快的 GitHub 指南。

数据库支持

Symfony 2 提供更好的数据库支持。您可以使用数据库数组,包括 NoSQL 和 DynamoDB。Yii 和 Laravel 也支持数据库,但是所支持的数据库比 Symfony 少。每个框架支持的数据库如表1所示。

表1

%e6%8d%95%e8%8e%b7
社区和资源

社区力量是开源框架寿命的一个重要预测因素。这三个框架都有其固定的社区,Symfony 的相对较为成熟。社区仍在不断地发展,因此很难预测未来社区的发展动态。

Laravel 在学习材料和文档方面做得最好,Symfony 和 Yii 也不差:

  • Laravel 文档

  • Symfony 文档(3.0)

  • Yii 文档

可扩展性

框架是可以进行或包扩展的结构,改进它们的功能和范围。在这方面 Laravel 是当之无愧的赢家。 Packalyst 是 Laravel 软件包的目录,提供 9000 多个软件包。而 Yii 和 Symfony 分别提供大约 2800 个扩展和 2830 个bundle。Laravel 以超越其他两者的三倍的扩展性,成为这方面最好的框架。

Symfony, Laravel 和 Yii 相似之处

我们研究了框架之间的差异。 现在让我们看看他们的相似之处:

1.三个框架都是全栈 PHP 框架,并提供了从创建 Web 应用程序前端代码编写到后端数据检索的功能。

2.这些项目都是开源的,他们的源代码可以在 GitHub 上找到,每个人都可以轻松地贡献自己的代码:

  • Symfony

  • Laravel

  • Yii

3.这些框架有很好的文档,并得到了大型社区的支持。

4.它们各自支持 ORM(对象关系映射)。ORM 非常喜欢为应用程序编写面向对象的代码(OO code)。

5.用它们创建 Web 2.0 应用程序是安全和可靠的。

还是无法选择? 也许这些清单可以帮助你缩小选择范围:

Symfony:

  • 提供 LTS 版本,

  • 具有负载功能,

  • 是目前最稳定的框架,

  • 是一个基于组件的框架,提供广泛的模块化,

  • 有一个强大的社区和大量的学习资源

Yii:

  • 自带 Ajax 支持

  • 非常适合开发实时应用程序

  • 高度可扩展

  • 准确的错误处理

  • 擅长创建 Restful Web Services

  • 有一个强大的社区和大量的学习资源

Laravel:

  • 2015-2016 年最流行的框架

  • 支持 Composer 进行包管理

  • 擅长做单元测试

  • 提供了大量的软件包来扩展框架功能

  • 有一个强大的社区和大量的学习资源

结论:

在 Symfony 、Laravel 、Yii  三个PHP框架都是为开发人员提供全栈开发环境的优秀选项。我觉得 Laravel 是最大的赢家,并且仍然在不断地发展壮大。

不过,Symfony 和 Yii 都是优秀的框架。Symfony 比较成熟,并且拥有一个更大、更成熟的社区。Yii 是一个独特的,并能稳健、安全地完成工作的框架。

其他资源

  • Symfony2 vs Yii2: Which development framework should you choose?

  • 10 PHP Frameworks for Developers

  • It’s Laravel 5.1 for Enterprise Development

以上是一些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无尽的。

热工具

记事本++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