日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

PHP優(yōu)秀框架Laravel和Yii大PK

譯者 | 陳峻

Laravel 和 Yii 是當(dāng)前兩種針對 php 的優(yōu)秀框架。它們在全球都有成熟的社區(qū)、以及大量的編程愛好者。本文為您全面比較 Laravel 和 Yii,并和您討論如何根據(jù)具體項(xiàng)目在兩者中做出選擇。

如果您向任何經(jīng)驗(yàn)豐富的Web應(yīng)用開發(fā)人員詢問,什么是他們首選的編程語言的話,他們的回答居多會提到PHP。的確,PHP是一種被廣泛使用的通用腳本語言,特別適用于Web開發(fā),并且可以被嵌入到html中。

根據(jù)網(wǎng)站技術(shù)分析工具Builtwith的統(tǒng)計(jì),目前有3,090,319個(gè)實(shí)時(shí)網(wǎng)站仍在使用著PHP。當(dāng)然,在開發(fā)低延遲、高穩(wěn)定性的大型項(xiàng)目時(shí),開發(fā)人員往往傾向于使用某種框架。其中,Laravel和Yii是當(dāng)前兩種針對PHP的優(yōu)秀框架。它們在全球都有成熟的社區(qū)、以及大量的編程愛好者。下面,我為您全面比較Laravel和Yii,并和您討論如何根據(jù)具體項(xiàng)目在兩者中做出選擇。

PART 01

到底什么是Laravel和Yii?

Laravel是一個(gè)簡單的PHP框架,經(jīng)常被用于基于Web或Web應(yīng)用的開發(fā),最初是作為Codeigniter的更好替代品而創(chuàng)建的。它以支持MVC、協(xié)同ORM系統(tǒng)、可靠性、模塊化、以及簡單的編程規(guī)則而聞名。總的說來,Laravel框架具有如下關(guān)鍵特性:

  1. Artisan:Artisan是一個(gè)命令行工具,可以讓您輕松地創(chuàng)建模型、控件、計(jì)劃任務(wù)、以及運(yùn)行各種自定義的命令。

  2. Eloquent:Eloquent是一個(gè)對象關(guān)系映射(Object-Relational MApping,ORM)型數(shù)據(jù)庫的交互式框架。

  3. 不同的數(shù)據(jù)庫支持:Laravel為當(dāng)前可訪問的每一種數(shù)據(jù)庫格式提供了代碼包。它通過允許遷移操作,來保證數(shù)據(jù)庫的修改和版本控制。

  4. Blade Template Engine:它允許在視圖中使用簡單的PHP代碼。為了避免應(yīng)用的過載,視圖一旦被構(gòu)建和緩存,就會被保持,直至它們被再次更新。

  5. Vast Laravel Libraries:開發(fā)人員可以在自己的應(yīng)用程序中,安全地使用數(shù)百個(gè)標(biāo)準(zhǔn)化的Laravel代碼庫。該框架的設(shè)計(jì)者還提供了定期更新的官方文檔,以便開發(fā)者進(jìn)行廣泛地使用。

Yii是2006年作為PRADO框架的繼承者被發(fā)布的。作為一個(gè)可被用于快速開發(fā)現(xiàn)代化Web應(yīng)用的開源式PHP框架,它具有基于組件的架構(gòu)和完整、可靠的緩存支持。開發(fā)人員可以使用Yii框架,去構(gòu)建諸如:論壇、門戶、內(nèi)容管理系統(tǒng)、RESTful服務(wù)、以及電商網(wǎng)站等各種Web應(yīng)用。總的說來,Yii框架具有如下關(guān)鍵特性:

  1. 全面支持DBMS:Yii框架支持PostgreSQL、MySQL、SQLite、Oracle、以及其他DBMS。

  2. 支持第三方模板引擎:Yii框架沒有內(nèi)置的模板引擎支持,但是可以使用第三方的解決方案。

  3. 強(qiáng)大的知識庫:其官方文檔和豐富的教程可以幫助開發(fā)人員快速地找到大部分問題的答案。

  4. 自動(dòng)化代碼生成:開發(fā)人員可以通過使用Gii的擴(kuò)展,來自動(dòng)生成代碼,從而顯著地加快編程的進(jìn)程。

可見,這兩個(gè)框架都是非常棒的Web開發(fā)的框架。當(dāng)然,它們也有著本質(zhì)上的不同。

PART 02

Laravel與Yii之間的不同之處

1.安裝

這兩種框架都可以運(yùn)行在PHP 5.4或更高的版本上。不過,Laravel需要諸如:PHP JSON和MCrypt PHP等額外的擴(kuò)展,而Yii已經(jīng)內(nèi)置了它們。此外,您可以通過下載壓縮文件,并將其解壓縮到Web應(yīng)用可以拿到的文件夾中,來安裝Yii。同時(shí),您還可以使用Composer(一種PHP 包管理工具 )來安裝它,并配置訪問令牌。而對于Laravel來說,您可以使用Laravel Installer或Composer來安裝它。

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

2.基于場景的驗(yàn)證

Laravel沒有任何可用于執(zhí)行基于場景驗(yàn)證的代碼包。而在Yii框架中,用戶可以使用各種請求參數(shù)來分配模型,并對其進(jìn)行驗(yàn)證。

得分:Laravel得1分:Yii得2分

3.客戶端驗(yàn)證

Laravel并沒有任何代碼包可執(zhí)行客戶端的驗(yàn)證。而Yii由于提供了開箱即用的JAVAScript驗(yàn)證,因此它允許您通過只定義一組模型規(guī)則,以用于在服務(wù)器端和客戶端進(jìn)行驗(yàn)證。

得分:Laravel得1分:Yii得3分

4.路由功能

Laravel雖然提供了資源路由(resource routing),但是您需要為所有控制器中的每一項(xiàng)操作,去聲明一條路由。而Yii框架的默認(rèn)選擇便是逐個(gè)路由操作的模式,因此您無需進(jìn)行反復(fù)操作,僅憑一個(gè)簡單的路由即可。

得分:Laravel得1分:Yii得4分

5.CRUD(增加(Create)、檢索(Retrieve)、更新(Update)和刪除(Delete))的生成

許多項(xiàng)目會使用管理面板,來實(shí)現(xiàn)各種數(shù)據(jù)表的CRUD功能。而作為Yii中的一個(gè)專用擴(kuò)展,Gii提供了一個(gè)基于Web的界面,可以自動(dòng)生成各種常用的交互式代碼片段。不過Laravel并不能默認(rèn)支持CRUD的生成。

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

6.擴(kuò)展支持

通過不同的擴(kuò)展,我們往往能夠讓原有的框架,具有增強(qiáng)應(yīng)用性能或特性的高級能力。雖然這兩種框架都提供了受支持的擴(kuò)展庫,但是Laravel在此方面略顯優(yōu)勢。目前,Yii有大約2,800個(gè)擴(kuò)展。而Laravel已經(jīng)能夠支持大約9,000個(gè)擴(kuò)展了。

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

7.遷移

您可能需要將應(yīng)用遷移到新的數(shù)據(jù)庫結(jié)構(gòu)中,而不想丟失舊的結(jié)構(gòu)中的數(shù)據(jù)。那么,這往往離不開便利的數(shù)據(jù)庫遷移框架。由于Laravel提供了seeder來協(xié)助簡化該過程,因此其遷移操作相對比較容易。而Yii也提供了一個(gè)完整的遷移工具,來支持有效的遷移過程。

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

8.測試

眾所周知,在被用于Web應(yīng)用的開發(fā)時(shí),框架應(yīng)當(dāng)具有良好的測試能力,以檢測和調(diào)試各項(xiàng)操作中的錯(cuò)誤。同樣,這兩個(gè)框架在測試方面也是各有千秋。Yii提供了開箱即用的PHPUnit和Codeception,而Laravel提供了PHPUnit、以及諸如Httpkernel、DomCrawler、Browserkit等各種Symfony測試組件。

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

9.安全

如今,安全性對于應(yīng)用程序來說已是至關(guān)重要的了,畢竟任何攻擊或漏洞都可能造成嚴(yán)重的破壞,進(jìn)而泄露有價(jià)值的客戶信息。因此,您需要通過框架,來保護(hù)用戶數(shù)據(jù)的同時(shí),為各種用戶角色提供和管理適當(dāng)?shù)脑L問級別。Yii和Laravel都提供了諸如:密碼保護(hù)、身份驗(yàn)證、防止SQL注入、預(yù)防跨站點(diǎn)腳本(XSS)攻擊、以及其他安全威脅機(jī)制。不過,由于Yii提供了功能豐富且基于角色的訪問控制系統(tǒng),而Laravel則需要第三方的擴(kuò)展,因此Yii又更勝一籌。當(dāng)然,我們在此并沒有貶低Laravel的安全性價(jià)值的意思。

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

10.可用的文檔

Laravel雖然提供了大量條理性強(qiáng)且具有技術(shù)含量的文檔,然而由于信息量過大,開發(fā)人員很難快速地找到所要的信息。相比之下,Yii雖然沒有強(qiáng)大的文檔,但是在提供信息的方式上,并不存在陡峭的學(xué)習(xí)曲線。用戶可以按照其文檔指引,輕松地開始編程工作。當(dāng)然,不可否認(rèn)的是,就文檔的豐富程度而言,Laravel要比Yii強(qiáng)大得多。

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

PART 03

對比結(jié)果

從綜合評分來看,Laravel和Yii可謂勢均力敵、不分伯仲。畢竟每一種框架都有著適合自己的用例場景和具體領(lǐng)域。總的說來,Laravel是一個(gè)廣受專注的框架,其主要用戶群體是各類Web開發(fā)人員。當(dāng)然,Yii也擁有不小的用戶群,它主要適合那些初學(xué)者級別的Web開發(fā)人員、系統(tǒng)管理員、以及其他開發(fā)愛好者。

就實(shí)際項(xiàng)目而言,如果您正在嘗試著構(gòu)建大型的Web應(yīng)用或企業(yè)級應(yīng)用的話,Laravel將是您的最佳選擇。而如果您正在尋找一個(gè)簡單的開發(fā)框架,且目標(biāo)是開發(fā)一個(gè)中小型應(yīng)用的話,那么Yii會更加適合您。

原文鏈接:

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

譯者介紹

陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識與經(jīng)驗(yàn);持續(xù)以博文、專題和譯文等形式,分享前沿技術(shù)與新知;經(jīng)常以線上、線下等方式,開展信息安全類培訓(xùn)與授課。

本文由高可用架構(gòu)翻譯。技術(shù)原創(chuàng)及架構(gòu)實(shí)踐文章,歡迎通過公眾號菜單「聯(lián)系我們」進(jìn)行投稿。

分享到:
標(biāo)簽:Laravel
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定