PHP优秀框架Laravel和Yii大PK


PHP优秀框架Laravel和Yii大PK

文章插图
译者 | 陈峻
Laravel 和 Yii 是当前两种针对 php 的优秀框架 。它们在全球都有成熟的社区、以及大量的编程爱好者 。本文为您全面比较 Laravel 和 Yii,并和您讨论如何根据具体项目在两者中做出选择 。
如果您向任何经验丰富的Web应用开发人员询问,什么是他们首选的编程语言的话,他们的回答居多会提到PHP 。的确,PHP是一种被广泛使用的通用脚本语言,特别适用于Web开发,并且可以被嵌入到html中 。
根据网站技术分析工具Builtwith的统计,目前有3,090,319个实时网站仍在使用着PHP 。当然,在开发低延迟、高稳定性的大型项目时,开发人员往往倾向于使用某种框架 。其中,Laravel和Yii是当前两种针对PHP的优秀框架 。它们在全球都有成熟的社区、以及大量的编程爱好者 。下面,我为您全面比较Laravel和Yii,并和您讨论如何根据具体项目在两者中做出选择 。
PART 01
到底什么是Laravel和Yii?
Laravel是一个简单的PHP框架,经常被用于基于Web或Web应用的开发,最初是作为Codeigniter的更好替代品而创建的 。它以支持MVC、协同ORM系统、可靠性、模块化、以及简单的编程规则而闻名 。总的说来,Laravel框架具有如下关键特性:
  1. Artisan:Artisan是一个命令行工具,可以让您轻松地创建模型、控件、计划任务、以及运行各种自定义的命令 。
  2. Eloquent:Eloquent是一个对象关系映射(Object-Relational MApping,ORM)型数据库的交互式框架 。
  3. 【PHP优秀框架Laravel和Yii大PK】不同的数据库支持:Laravel为当前可访问的每一种数据库格式提供了代码包 。它通过允许迁移操作,来保证数据库的修改和版本控制 。
  4. Blade Template Engine:它允许在视图中使用简单的PHP代码 。为了避免应用的过载,视图一旦被构建和缓存,就会被保持,直至它们被再次更新 。
  5. Vast Laravel Libraries:开发人员可以在自己的应用程序中,安全地使用数百个标准化的Laravel代码库 。该框架的设计者还提供了定期更新的官方文档,以便开发者进行广泛地使用 。
Yii是2006年作为PRADO框架的继承者被发布的 。作为一个可被用于快速开发现代化Web应用的开源式PHP框架,它具有基于组件的架构和完整、可靠的缓存支持 。开发人员可以使用Yii框架,去构建诸如:论坛、门户、内容管理系统、RESTful服务、以及电商网站等各种Web应用 。总的说来,Yii框架具有如下关键特性:
  1. 全面支持DBMS:Yii框架支持PostgreSQL、MySQL、SQLite、Oracle、以及其他DBMS 。
  2. 支持第三方模板引擎:Yii框架没有内置的模板引擎支持,但是可以使用第三方的解决方案 。
  3. 强大的知识库:其官方文档和丰富的教程可以帮助开发人员快速地找到大部分问题的答案 。
  4. 自动化代码生成:开发人员可以通过使用Gii的扩展,来自动生成代码,从而显著地加快编程的进程 。
可见,这两个框架都是非常棒的Web开发的框架 。当然,它们也有着本质上的不同 。
PART 02
Laravel与Yii之间的不同之处
1.安装
这两种框架都可以运行在PHP 5.4或更高的版本上 。不过,Laravel需要诸如:PHP JSON和MCrypt PHP等额外的扩展,而Yii已经内置了它们 。此外,您可以通过下载压缩文件,并将其解压缩到Web应用可以拿到的文件夹中,来安装Yii 。同时,您还可以使用Composer(一种PHP 包管理工具 )来安装它,并配置访问令牌 。而对于Laravel来说,您可以使用Laravel Installer或Composer来安装它 。
得分:Laravel得1分:Yii得1分
2.基于场景的验证
Laravel没有任何可用于执行基于场景验证的代码包 。而在Yii框架中,用户可以使用各种请求参数来分配模型,并对其进行验证 。
得分:Laravel得1分:Yii得2分
3.客户端验证
Laravel并没有任何代码包可执行客户端的验证 。而Yii由于提供了开箱即用的JAVAScript验证,因此它允许您通过只定义一组模型规则,以用于在服务器端和客户端进行验证 。
得分:Laravel得1分:Yii得3分
4.路由功能
Laravel虽然提供了资源路由(resource routing),但是您需要为所有控制器中的每一项操作,去声明一条路由 。而Yii框架的默认选择便是逐个路由操作的模式,因此您无需进行反复操作,仅凭一个简单的路由即可 。
得分:Laravel得1分:Yii得4分


推荐阅读