整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          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. 不同的數據庫支持: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分

          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可謂勢均力敵、不分伯仲。畢竟每一種框架都有著適合自己的用例場景和具體領域。總的說來,Laravel是一個廣受專注的框架,其主要用戶群體是各類Web開發人員。當然,Yii也擁有不小的用戶群,它主要適合那些初學者級別的Web開發人員、系統管理員、以及其他開發愛好者。

          就實際項目而言,如果您正在嘗試著構建大型的Web應用或企業級應用的話,Laravel將是您的最佳選擇。而如果您正在尋找一個簡單的開發框架,且目標是開發一個中小型應用的話,那么Yii會更加適合您。

          原文鏈接:

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




          譯者介紹

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


          本文由高可用架構翻譯。技術原創及架構實踐文章,歡迎通過公眾號菜單「聯系我們」進行投稿。


          高可用架構
          改變互聯網的構建方式

          見即所得,不是很熟悉這個詞嗎?所見即所得代表什么,你看到的就是你得到這通常意味著一個編輯應用程序使用,以說明正在編輯的內容將完全一樣的最終結果。與其他文本編輯器相比,“所見即所得” 文本編輯器非常友好。

          它指已操作的軟件或應用程序所擁有的功能,以及它們具有的許多其他功能。在使用中,此文本編輯器不需要像其他文本編輯器中那樣編寫語法,因為它配備了圖標,只需要單擊將要使用并自動格式化的圖標之一即可。

          此外,該文本編輯器還具有其他優勢,例如能夠顯示一頁文本,與圖形,電子表格集成,在一個文檔中顯示照片,自動更正,超媒體,超文本等等。下面是一些用于網頁的所見即所得文本編輯器:

          1. CKEditor

          CKEditor是一個HTML 文本編輯器,用于并旨在幫助您創建和管理內容布局。該文本編輯器中有許多完整的功能,如可以從Microsoft Word移動,還有額外的部件或工具,能夠拖動和下降圖片和上傳文件,以及更多。

          2. TinyMCE


          TinyMCE是一個基于Javascript的獨立Web平臺,該文本編輯器根據LGPL許可作為開源應用程序發布。該文本編輯器旨在與JavaScript 庫(例如React,Vue.js,AngularJS)和內容管理系統(例如Joomla和WordPress)輕松集成。另外,一個文本編輯器它還具有許多完整功能,包括4個軟件包,其中Community是免費的,Premium,Pro和Enterprice是收費的。相對而言Community實際上非常完整,但是沒有上傳圖像的功能。

          3. Summernote

          Summernote是一個非常簡單且免費的文本編輯器。該文本編輯器使用base64編碼,因此它不僅可以用于編輯文本,而且還可以直接上傳圖像,而無需進行任何圖像處理。該文本編輯器由jQuery和Bootstrap組成,這是一個簡單的UI,因此你可以更輕松地自定義外觀或添加和刪除工具欄。

          4. Froala

          Froala是HTML WYSIWYG 編輯器,它易于集成且易于使用,而無需鍵入大量代碼。此插件需要jQuery 1.11.0或更高版本以及Font Awesome 4.4.0。該插件提供了用于PHP,Node.JS,.NET,Java和Python的服務器端SDK。該插件有4種許可,分別是:單個網站許可,開發者許可,商業許可和OEM許可。這個插件還有一個帶有多個開發框架的連接器,例如:CakePHP,Joomla,Symfony,Yii,Django,Ruby on Rails,AngularJS,Meteor。

          5.Redactor

          Redactor是一個內容編輯器,可提供流暢,整潔,靈活的設計,并為其用戶提供無限的支持。該內容編輯器與MODX緊密集成,提供簡單的用戶界面,并配有清晰易懂的圖標,調制解調器和功能。可以根據需要激活或停用可用的高級功能,以便它可以控制用戶活動。

          6.Quilljs

          Quilljs是100%免費的文本編輯器,它看起來簡單而優雅。該文本編輯器提供了一種配置,你可以在其中自定義外觀以及添加和刪除工具欄。該文本編輯器也受API驅動,因此可以使用JSON作為其輸入和輸出來始終如一地確定性地工作。此外,此文本編輯器是跨平臺的,因此它支持臺式機,平板電腦或移動設備上的所有現代瀏覽器。

          Yii框架學習】

          介紹、安裝部署框架、商城模板與yii結合、MVC

          Php框架:cakephp CI(codeIgniter) symfony TP(thinkphp) zendframework(官方) Yii 等等,還有許多叫不上名字的框架。

          Yii:高性能框架、代碼重用性發揮到了極致、惰性加載框架、速度非常快

          緩存、登錄組件、助手(小物件,靈活創建表單,常見html代碼)、日志組件等等。

          適合開發大型web應用系統

          【yii框架部署】

          我們需要創建自己的應用系統

          Cms 內容管理系統

          Shop商城系統

          Office辦公系統

          Crm客戶關系管理系統

          開始訪問我們的應用系統。

          【yii在什么地方用的多】

          框架:dedecms ecshop crm

          Dedecms是內容管理系統的框架

          Ecshop是做商城網站的框架

          Crm是做客戶關系管理系統的框架

          以上3個框架都是“專門”針對具體領域的框架,這樣的框架不靈活,死板。

          Yii框架是通用的框架,一般適合客戶需求比較靈活、比較花樣多,比較復雜的地方。

          Yii框架設計模式是主流MVC。

          Yii框架是一個純OOP面向對象框架。

          【商城模板與Yii框架結合】

          Yii訪問需要走路由,設置好路由就會找到對應的控制器和方法

          路由:http://web.0507shop.com/index.php?r=site/index

          將樣式、圖片、js靜態資源集成到系統里邊

          Css樣式:/assets/default/css/

          圖片:/assets/default/img

          Js: /assets/js/

          靜態資源目錄統一放入系統常量里邊,方便調用。

          /protected/config/constants.php

          用戶登錄模板與Yii框架整合:

          1. 創建UserController控制器

          2. 創建視圖views/user/login.php

          3. 控制器調用視圖$this->renderPatial();

          4. 引入css和圖片,將樣式目錄與圖片目錄放入常量,統一調用。

          【路由】

          在框架里邊我們通過路由獲得控制器和方法

          我們有了控制器的方法,就可以進一步與視圖或模型進行交互

          http://網址/index.php?r=控制器/方法

          【商城其他頁面與Yii結合】

          事件

          Ctrl+j

          今晚主要任務 : 商城前臺模板 與 Yii結合

          1, Yii框架部署起來(根據自己情況搭建虛擬主機,也可以使用localhost)

          2, 控制器和視圖理解好

          控制器:UserController (名字Controller)

          方法: actionLogin (action名字)

          Views/ 下邊有許多目錄,目錄原則是:每個控制器名字在views下都有對應名字的目錄存在,里邊存放具體模板文件

          3. 理解好常量文件constant.php(樣式目錄和圖片目錄定義)

          4. 商城網站與Yii框架結合制作出效果(首頁、登錄、注冊、商品列表、商品詳細)

          Controller控制器

          view視圖

          Model模型

          MVC設計模式


          主站蜘蛛池模板: 国产拳头交一区二区| 日本一区免费电影| av无码免费一区二区三区| 无码国产精品一区二区免费式芒果| 久久久久久综合一区中文字幕| 国产福利微拍精品一区二区| 日本一区二区三区四区视频| 国产精品主播一区二区| 2021国产精品视频一区| 国产免费一区二区三区在线观看| 麻豆一区二区免费播放网站| 亚洲综合av永久无码精品一区二区| 少妇激情AV一区二区三区| 国产成人无码精品一区不卡| 一区二区三区观看免费中文视频在线播放 | 久久综合九九亚洲一区| 国产一区二区三区露脸| 亚洲国产精品一区二区三区在线观看| 视频一区视频二区在线观看| 麻豆果冻传媒2021精品传媒一区下载| 国产成人无码一区二区三区在线| 色天使亚洲综合一区二区| 国产精品分类视频分类一区| 少妇激情一区二区三区视频| 免费视频精品一区二区三区| 国产成人无码一区二区三区在线| 一区二区三区四区无限乱码 | 国产精品资源一区二区| 国产精品亚洲一区二区在线观看| 亚洲国产精品综合一区在线| 日韩精品中文字幕无码一区 | 精品视频在线观看你懂的一区| 亚洲av永久无码一区二区三区| 欧美一区内射最近更新| 在线观看日韩一区| 中文字幕一区二区三区四区 | 精品国产日韩一区三区| 日本精品一区二区三区视频| chinese国产一区二区| 久久精品岛国av一区二区无码| 亚洲影视一区二区|