糯米文學吧

位置:首頁 > 設計 > 網頁設計

2017最熱門的PHP框架

PHP 是世界上最流行的編程語言之一,廣泛用於主要的項目中。例如,Facebook 就是利用 PHP 來創建和維護他們的內部系統;WordPress 內部基於 PHP, 作為報答它為超過26%的網站提供了技術支持。而現在PHP已經為超過82%的網站提供了支持(Web Technology Surveys 站點能夠跟蹤的服務器端編程語言)。

2017最熱門的PHP框架

本文將通過 3 款最流行的 PHP 框架:Symfony, Laravel, 和 Yii 的比較,來幫助你找到最適合的 PHP 框架。

  為什麼選擇 PHP 框架?

下面列出了一些使用 PHP 框架進行開發的好處:

PHP 框架使開發更快。比如,你不需要寫複雜的查詢操作來從數據庫中檢索數據,PHP 提供了增加(Create)、讀取(Retrieve)(重新得到數據)、更新(Update)和刪除(Delete)的操作。

框架能夠使得開發者更容易地擴展系統。

代碼維護比普通的 PHP 應用更加容易。應用程序代碼將更加簡潔

MVC模式可保證快速發展。

框架更好地保護Web應用程序免受常見的安全威脅。

DRY(Don’t Repeat Yourself )原則讓最少的代碼發揮最大的作用。

以上所列的好處都具有十分重要的意義。儘管利用原生的 PHP 能夠寫出任何一個應用,但是現在的開發更多地要求使用工具和時間管理技能,以滿足市場需求。

如何選擇一款適合的 PHP 框架?

回答下面的問題能幫助你更好地選擇一款適合的框架:

這個框架的特性和功能是什麼?(它提供了我需要的東西了嗎?)

這個框架的學習曲線是怎麼樣的?

這個框架的可擴展性如何?

這個框架對於編碼團隊的開發和維護具有積極的作用嗎?

這個框架提供了長時間支持版本(LTS support) 嗎?

這個框架有強大的社區支持嗎?

  Symfony, Laravel 和 Yii 概述

在深入到技術細節之前,先對三者進行一個概述:

Symfony

Symfony 是一款可重複使用的 PHP 組件,讓開發者開發可擴展的、高性能的應用。它有30個組件可供選擇,開發者可以在 RAD 環境下自由地進行實驗或工作。

一些比較出名的項目,像 Drupal and phpBB 使用的都是 Symfony 框架。事實上,另一款 PHP 流行框架 Laravel 也是建立自 Symfony 。

Laravel

“PHP framework for Web Artisans”——Laravel 作為最流行的 PHP 框架,為開發者提供了一個優秀的社區交流平台(Laravel 的其中一個創始人是 的 Sfiskell)。

2015 年 5 月 Laravel 發佈的 5.1 版本將提供長時間支持版本(兩年)。5.2 版本也在 2015 年 12 月推向市場。很多託管公司提供 Laravel 支持以及 Laravel 應用託管解決方案。

Yii

國人薛強在 2008 年創建的 Yii 是一個安全、快速、高性能的應用/ Web 開發框架。Yii 利用PHP的Composer 依賴項管理器來處理不同的依賴和安裝(下面我們會講到)。延遲加載技術( lazy loading technique)使得 Yii 成為最快的PHP 框架。

Yii 的另一個不錯的`特性是整合了 jQuery,使得前端開發者能更快地上手,它利用基架來生成代碼。Yii 和 Symfony 一樣是藉助組件來使應用開發更快。

  Symfony, Laravel 和 Yii 比較

這三款框架都非常構建開發 Web 2.0 應用程序,但他們的側重點又各有不同。下面我們看一下他們各自的特性和安裝:

模板引擎

模板引擎能減輕開發者的負擔,在寫前端代碼時提供更好的功能。模板引擎提供了諸如自動 HTML 轉義和過濾等功能,並填補了原生 PHP 留下的空白。

  Symfony Twig 模板系統

Twig 是一個靈活,快速,安全的 PHP 模板語言。Symfony 的優勢是使用了 Twig 來使得開發者編寫乾淨、整潔的代碼,並且能夠利用原生 PHP 來實現更多的功能。例如,下面宂長的代碼實現的是轉義(escaping):

<?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 模板系統

跟其他的模板系統不同,Blade 允許你在視圖中使用 PHP 代碼。而且,由於blade 視圖文件存儲在 extension裏面,所以 Blade 對你的應用性能損耗為 0。所有在視圖文件裏面的代碼可以在處理過程中就轉換成原生 PHP。

  Yii 默認的模板系統

Yii 默認不使用任何第三方的模板系統,但這並不意味着它缺少模板系統的支持,模板系統的選擇取決於開發團隊,推薦 Twig 和 Smarty。Symfony 使用的是 Twig,所以如果你之前使用過 Symfony,你可能會想選擇 Twig 作為你下一個 Yii 項目的選擇。

很難定義那款才是最好的。這三個框架都利用了模板系統來更好地編寫和維護前端。 Yii 的一個小優勢是它沒有一個預定義的模板系統。

  框架的差異

每個框架的構建都是不同的。Symfony 致力於可重用組件,並提供最好的模塊化。另外 Symfony 利用模塊和控制器來開發 Web 應用,這可能會讓一些剛入門的開發者望而卻步。此外,Symfony 還是一個很好的模塊化結構的例子,你可以以模塊化的方式在你的項目裏使用 symfony 提供的 30 個組件。

Yii採用 MVC 框架。(symfony 也支持 MVC 架構,更詳細的討論請看 網站的 Is Symfony2 a MVC framework )

Symfony 可以用於快速開發複雜的項目。如果説哪個框架最適合複雜的項目的話,symfony 相比於其他框架具有十分優秀的複雜處理的能力 。Yii 也利用了組件,但和 symfony 的模塊不一樣。Laravel 雖然沒有提供一個模塊化的方法,但和其他兩個框架一樣好用。

如果你正在尋找一個模塊化的框架的話就選擇 symfony。否則,Laravel 和 Yii 都是不錯的選擇。

  安裝

這三個框架都提供了多個安裝過程,如果您使用 Composer 來處理包,就發現其實所有框架都可以通過Composer 安裝。

而對於 Symfony 來説,Composer 的作用尤為重要。因為使用 PHP 的 Composer 依賴項管理器是處理組件的好幫手。

當然也有其他的安裝框架的方式,例如使用簡單的歸檔方法來安裝。

安裝後,Yii 將提供一個 Web 應用程序和一個基本的模板幫助你的開發;Symfony 2 提供了一個開始演示應用程序;通過 Laravel 安裝程序來安裝和使用 Composer 來創建項目,使得 Laravel 也能夠很容易安裝使用。詳細信息請查看 Laravel 安裝指南。

  發展

從公司或客户的角度來看,迅速將應用程序推向市場以滿足消費者的需求並擊敗競爭對手是很重要的。 Symfony 由於其背後有強大的社區支撐而站穩腳跟; Laravel 正在快速成長,要被開發者完全認可仍有很長的路要走。另外,如果你還不知道任何 PHP 框架,希望儘快選擇一款適合你的,Laravel 是個不錯的選擇,它有一個簡單的學習曲線,並且有很多在線教程幫助你開始使用。Yii 將性能提升到一個新的水平,並提供代碼基架,以便更快地生成和開發代碼。

  性能

任何應用程序的性能只有當它使用關鍵數據的實時應用程序時才有意義。有多少基於 Web 的應用程序依賴於高性能呢? 並不多,但是框架的性能在許多項目中可以發揮關鍵性的作用。

社交網絡是實時事件的主要例子,我們的明星流媒體之一——jadson 就使用了 Yii2 建立移動社交網絡。最快的 PHP 框架 Yii 毫無疑問是高性能應用程序編碼框架的最佳選擇。

Laravel 的性能是非常有爭議的。它是最慢的,但這重要嗎? 您可以找到很多用於加快性能的在線資源,包括使 Laravel 應用程序更快的 GitHub 指南。

  數據庫支持

Symfony 2 提供更好的數據庫支持。您可以使用數據庫數組,包括 NoSQL 和 DynamoDB。Yii 和 Laravel 也支持數據庫,但是所支持的數據庫比 Symfony 少。每個框架支持的數據庫如表1所示。

表1

社區和資源

社區力量是開源框架壽命的一個重要預測因素。這三個框架都有其固定的社區,Symfony 的相對較為成熟。社區仍在不斷地發展,因此很難預測未來社區的發展動態。

Laravel 在學習材料和文檔方面做得最好,Symfony 和 Yii 也不差:

  Laravel 文檔

  Symfony 文檔(3.0)

  Yii 文檔

可擴展性

框架是可以進行或包擴展的結構,改進它們的功能和範圍。在這方面 Laravel 是當之無愧的贏家。 Packalyst 是 Laravel 軟件包的目錄,提供 9000 多個軟件包。而 Yii 和 Symfony 分別提供大約 2800 個擴展和 2830 個bundle。Laravel 以超越其他兩者的三倍的擴展性,成為這方面最好的框架。

  Symfony, Laravel 和 Yii 相似之處

我們研究了框架之間的差異。 現在讓我們看看他們的相似之處:

1.三個框架都是全棧 PHP 框架,並提供了從創建 Web 應用程序前端代碼編寫到後端數據檢索的功能。

2.這些項目都是開源的,他們的源代碼可以在 GitHub 上找到,每個人都可以輕鬆地貢獻自己的代碼:

Symfony

Laravel

Yii

3.這些框架有很好的文檔,並得到了大型社區的支持。

4.它們各自支持 ORM(對象關係映射)。ORM 非常喜歡為應用程序編寫面向對象的代碼(OO code)。

5.用它們創建 Web 2.0 應用程序是安全和可靠的。

還是無法選擇? 也許這些清單可以幫助你縮小選擇範圍:

Symfony:

提供 LTS 版本,

具有負載功能,

是目前最穩定的框架,

是一個基於組件的框架,提供廣泛的模塊化,

有一個強大的社區和大量的學習資源

Yii:

自帶 Ajax 支持

非常適合開發實時應用程序

高度可擴展

準確的錯誤處理

擅長創建 Restful Web Services

有一個強大的社區和大量的學習資源

Laravel:

2015-2016 年最流行的框架

支持 Composer 進行包管理

擅長做單元測試

提供了大量的軟件包來擴展框架功能

有一個強大的社區和大量的學習資源

結論:

在 Symfony 、Laravel 、Yii 三個PHP框架都是為開發人員提供全棧開發環境的優秀選項。我覺得 Laravel 是最大的贏家,並且仍然在不斷地發展壯大。

不過,Symfony 和 Yii 都是優秀的框架。Symfony 比較成熟,並且擁有一個更大、更成熟的社區。Yii 是一個獨特的,並能穩健、安全地完成工作的框架。

  其他資源

Symfony2 vs Yii2: Which development framework should you choose?

10 PHP Frameworks for Developers

It’s Laravel 5.1 for Enterprise Development

標籤:PHP 框架