PHP的三種框架都很適合用來創(chuàng)建Web2.0應用程序,但每種框架的使用目的有所不同。我們看看它們具有哪些功能,以及它們之間的較量,希望這對大家的PHP框架學習有所幫助。
模板引擎
模板引擎減少開發(fā)人員的工作量,它為寫前端代碼提供更好的功能。模板引擎提供了諸如自動HTML轉義和過濾功能,并填寫由原生PHP留下的空白。
Symfony Twig 模板系統(tǒng)
Twig是PHP的現代模板系統(tǒng)。Symfony利用其優(yōu)勢,使開發(fā)人員能夠編寫干凈、簡潔的代碼,而且它比原生PHP可以做得更多。例如,原生PHP寫的代碼:
<?php echo $var ?> <?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
Twig用以下代碼可以做到同樣的工作:
{{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #}
瀏覽Twig網站了解更多有關它的功能。
Laravel Blade模板系統(tǒng)
不像其它的模板系統(tǒng),Blade讓你在視圖中使用PHP代碼。另外,Blade具有零負荷應用程序的性能,因為它的視圖文件必須使用.blade.php擴展文件名。在處理過程中所有在視圖文件中的代碼都被轉換成原生PHP。
Yii默認模板系統(tǒng)
Yii不會默認使用任何第三方的模板系統(tǒng),但這并不意味著它缺少模板系統(tǒng)支持。模板系統(tǒng)的選擇取決于開發(fā)團隊。推薦使用Twig和Smarty。Symfony使用Twig,所以如果你在過去已經用過Symfony,你可能需要用Twig來開發(fā)你的一個Yii項目。
這里沒有明確的哪個框架更好。三種框架使用模板引擎以便寫出更好的前端編碼和維護。Yii的一個小優(yōu)勢是,框架沒有預先定義的模板系統(tǒng)。
框架的不同點
每一個框架的創(chuàng)建都是不同的。Symfony用可重復使用的組件工作,它還提供了最佳的模塊化。Symfony也利用模型和控制器來開發(fā)Web應用程序,在許多開發(fā)人員眼中,它可能看起來是遲鈍的,但它是有作用的。另外,Symfony是模塊化框構的一個很好例子。你可以用模塊化的方式在你的項目中使用它提供的30個組件。
Yii采用MVC框架。(Symfony為MVC提供支持,可以在Is Symfony2 a MVC framework了解更多細節(jié)。)
Symfony可以用來快速開發(fā)復雜的項目。即使有爭議說哪一個框架更有利于復雜的項目,Symfony相比其他框架,具有很出色處理復雜事物的能力。Yii也使用組件,但它并不是symfony那樣的模塊化。Laravel與其它兩個框架相比,載它的模塊化方式沒有這么犀利。
如果你正在尋找一個模塊化的框架,就選symfony吧,或者Laravel,Yii也是很不錯的選擇。
安裝
這三個框架提供了多個安裝程序。如果你使用的是用于處理軟件包的Composer,那太好了,因為它們三個都可以通過Composer安裝。
在symfony中, Composer的作用更為關鍵。組件處理的方法最好是用這個:Composer PHP dependency manager(Composer PHP依賴管理器)
還有其它方法安裝各自的框架。例如,你可以使用簡單的歸檔方法安裝框架。安裝后,Yii為你提供了一個Web應用程序和一個基本模板。Symfony 2還提供了一個演示程序來開始工作。
laravel也可以通過使用Composer創(chuàng)建項目或Laravel安裝器來快速安裝。查看Laravel installation guide了解更多Laravel安裝指南。
快速開發(fā)
從公司或客戶的角度來看,快速將應用程序推出市場,來滿足消費者的需求和擊敗競爭對手是很重要的。Symfony脫穎而出,因為它是一個有著有力社區(qū)支持的強大框架。Laravel發(fā)展得很快,但仍有很長的路要走,才能被視為PHP開發(fā)的必然選擇。另一方面,如果還沒有任何PHP框架的知識,又想盡快上手,可以考慮Laravel。Laravel的學習過程簡單,你會發(fā)現網上很多教程來幫助你上手。Yii將性能提升到一個新水平,并提供了代碼腳手架以便更快地生成代碼和開發(fā)。
性能
任何一個應用程序的性能,只有當它是使用關鍵數據的實時應用程序時才是重要的。有多少基于Web的應用程序依賴于高性能?不是很多,但框架的性能在許多項目中起著至關重要的作用。
社交網絡是實時事件的一個主要例子。Jadson使用Yii2創(chuàng)建了一個移動社交網絡。說到選擇最好的框架來編寫高性能的應用程序代碼,Yii作為最快的PHP框架,成為突出的選擇。
Laravel的性能是非常值得商榷的。它是最慢的,但這有什么關系呢?你可以在網上找到很多加速性能的資源,例如guide on GitHub,它可以加快你的Laravel應用程序。
數據庫支持
Symfony 2提供更好的數據庫支持。你可以使用一系列的數據庫工作,包括NoSQL和DynamoDB。Yii和laravel在這方面也是有用的,但他們支持的數據庫比symfony的少。每一個框架支持的數據庫如表1所示。
對一個開源框架的壽命預測要看它的社區(qū)優(yōu)勢。三個框架都有穩(wěn)固的社區(qū),雖然symfony的可能會更成熟一點。社區(qū)是發(fā)展的,所以對社區(qū)未來動態(tài)的預測是具有挑戰(zhàn)性的。
說到學習材料和文件,laravel最突出,雖然Symfony和Yii也不遜色:
框架是可以使用擴展或包來擴展的結構,提高了它們的功能和范圍。說到擴展,laravel是贏家。 Packalyst,它是laravel包的目錄,提供超過9000個包。Yii和symfony則分別提供了約2800個擴展和2830個包。Laravel是它們的3倍,因此從這方面來看,Laravel似乎是最好的框架。
我們已經介紹了框架之間的不同點。現在讓我們來看看它們相似的地方:
還在覺得困惑嗎?下面這份清單也許可以幫你縮小選擇范圍:
Symfony:
Yii:
Laravel:
在Symfony 、Laravel和Yii三者較量中,這三個PHP框架都是很好的選擇,為開發(fā)人員提供了一個全棧開發(fā)環(huán)境。對我個人來說,Laravel更佳,它作為一顆新出現的“框架之星”,沒有停下來的跡象。
不過,Symfony和Yii都是優(yōu)秀的框架。Symfony是行之有效的,有一個更大、更成熟的社區(qū)。Yii是一個獨特的框架,它是強大的,安全的,并能完成工作。
原文來自:博客園/cherry0327