PHP优秀框架Laravel和Yii大PK

2022-12-23 0 445

PHP优秀框架Laravel和Yii大PK

翻译者 | 陈峻

Laravel 和 Yii 是现阶段三种特别针对 PHP 的杰出架构。它在亚洲地区都有成形的街道社区、和大批的程式设计发烧友。责任编辑为您全面性较为 Laravel 和 Yii,并和您探讨怎样依照具体内容工程项目在二者中作出优先选择。

如果您向任何训练有素的Web应用领域合作开发者查问,甚么是她们必选的程式设计语言的话,她们的回答为主会提及PHP。确实,PHP是一类被广泛采用的通用型JavaScript,特别适用于于Web合作开发,并且能被内嵌到HTML中。

依照中文网站技术分析辅助工具Builtwith的统计数据,目前有3,090,319个动态中文网站仍在采用着PHP。当然,在合作开发低延后、高灵活性的工程项目投资时,合作开发者往往偏激于采用这种架构。其中,Laravel和Yii是现阶段三种特别针对PHP的杰出架构。它在亚洲地区都有成形的街道社区、和大批的程式设计发烧友。上面,我为您全面性较为Laravel和Yii,并和您探讨怎样依照具体内容工程项目在二者中作出优先选择。

PART 01

究竟甚么是Laravel和Yii?

Laravel是两个单纯的PHP架构,时常被用于如前所述Web或Web应用领域的合作开发,起初是作为Codeigniter的更快代替品而建立的。它以全力支持MVC、协作ORM系统、可靠性、模组化、和单纯的程式设计准则而闻名于世。Pudukkottai,Laravel架构具有如下表所示关键性优点:

Artisan:Artisan是两个配置文件辅助工具,能让您随心所欲地建立数学模型、配置文件、计划任务、和运行各种自订的指示。

Eloquent:Eloquent是两个第一类关系态射(Object-Relational Mapping,ORM)型资料库的互动式架构。

不同的资料库全力支持:Laravel为现阶段可出访的每一类资料库文件格式提供了标识符包。它通过容许北迁操作,来保证资料库的修正和管理辅助工具。

Blade Template Engine:它容许在快照中采用单纯的PHP标识符。为了防止应用领域的网络连接,快照一旦被构筑和内存,就会被保持,直到它被再次预览。

Vast Laravel Libraries:合作开发者能在自己的应用领域程序中,安全地采用数百个标准化的Laravel标识符库。该架构的设计者还提供了定期预览的官方文档,以便合作开发者进行广泛地使用。

Yii是2006年作为PRADO架构的继承者被发布的。作为两个可被用于快速合作开发现代化Web应用领域的开源式PHP架构,它具有如前所述组件的架构和完整、可靠的内存全力支持。合作开发者能采用Yii架构,去构筑诸如:论坛、门户、内容管理系统、RESTful服务、和电商中文网站等各种Web应用领域。Pudukkottai,Yii架构具有如下表所示关键性优点:

全面性全力支持DBMS:Yii架构全力支持PostgreSQL、MySQL、SQLite、Oracle、和其他DBMS。

全力支持第三方模板引擎:Yii架构没有内置的模板引擎全力支持,但是能采用第三方的解决方案。

强大的知识库:其官方文档和丰富的教程能帮助合作开发者快速地找到大部分问题的答案。

自动化代码生成:合作开发者能通过采用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分

5.CRUD(增加(Create)、检索(Retrieve)、预览(Update)和删除(Delete))的生成

许多工程项目会采用管理面板,来实现各种数据表的CRUD功能。而作为Yii中的两个专用扩展,Gii提供了两个如前所述Web的界面,能自动生成各种常用的互动式标识符片段。不过Laravel并不能默认全力支持CRUD的生成。

得分:Laravel得1分:Yii得5分

6.扩展全力支持

通过不同的扩展,我们往往能够让原有的架构,具有增强应用领域性能或优点的高级能力。虽然这三种架构都提供了受全力支持的扩展库,但是Laravel在此方面略显优势。目前,Yii有大约2,800个扩展。而Laravel已经能够全力支持大约9,000个扩展了。

得分:Laravel得5分:Yii得2分

7.北迁

您可能需要将应用领域北迁到新的资料库结构中,而不想丢失旧的结构中的数据。那么,这往往离不开便利的资料库北迁架构。由于Laravel提供了seeder来协助简化该过程,因此其北迁操作相对较为容易。而Yii也提供了两个完整的北迁辅助工具,来全力支持有效的北迁过程。

得分:Laravel得3分:Yii得6分

8.测试

众所周知,在被用于Web应用领域的合作开发时,架构应当具有良好的测试能力,以检测和调试各项操作中的错误。同样,这两个架构在测试方面也是各有千秋。Yii提供了开箱即用的PHPUnit和Codeception,而Laravel提供了PHPUnit、和诸如Httpkernel、DomCrawler、Browserkit等各种Symfony测试组件。

得分:Laravel得4分:Yii得7分

9.安全

如今,安全性对于应用领域程序来说已是至关重要的了,毕竟任何攻击或漏洞都可能造成严重的破坏,进而泄露有价值的客户信息。因此,您需要通过架构,来保护用户数据的同时,为各种用户角色提供和管理适当的出访级别。Yii和Laravel都提供了诸如:密码保护、身份验证、防止SQL注入、预防跨站点脚本(XSS)攻击、和其他安全威胁机制。不过,由于Yii提供了功能丰富且如前所述角色的出访控制系统,而Laravel则需要第三方的扩展,因此Yii又更胜一筹。当然,我们在此并没有贬低Laravel的安全性价值的意思。

得分:Laravel得4分:Yii得8分

10.可用的文档

Laravel虽然提供了大批条理性强且具有技术含量的文档,然而由于信息量过大,合作开发者很难快速地找到所要的信息。相比之下,Yii虽然没有强大的文档,但是在提供信息的方式上,并不存在陡峭的学习曲线。用户能按照其文档指引,随心所欲地开始程式设计工作。当然,不可否认的是,就文档的丰富程度而言,Laravel要比Yii强大得多。

得分:Laravel得8分:Yii得5分

PART 03

对比结果

从综合评分来看,Laravel和Yii可谓势均力敌、不分伯仲。毕竟每一类架构都有着适合自己的用例场景和具体内容领域。Pudukkottai,Laravel是两个广受专注的架构,其主要用户群体是各类Web合作开发者。当然,Yii也拥有不小的用户群,它主要适合那些初学者级别的Web合作开发者、系统管理员、和其他合作开发发烧友。

就实际工程项目而言,如果您正在尝试着构筑大型的Web应用领域或企业级应用领域的话,Laravel将是您的最佳优先选择。而如果您正在寻找两个单纯的合作开发架构,且目标是合作开发两个中小型应用领域的话,那么Yii会更加适合您。

原文链接:

https://dzone.com/articles/differences-between-laravel-and-yii

翻译者介绍

陈峻 (Julian Chen),51CTO街道社区编辑,具有十多年的IT工程项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;时常以线上、线下等方式,开展信息安全类培训与授课。

责任编辑由高可用架构翻译。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

高可用架构

改变互联网的构筑方式

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务