搜尋
首頁後端開發php教程怎麼選擇適合自己php框架

怎麼選擇適合自己php框架

Apr 16, 2018 pm 02:36 PM
php框架自己

這篇文章主要介紹的內容是關於怎麼選擇適合自己php框架,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

PHP是世界上最受歡迎的程式語言之一,最近PHP7的發布讓這門伺服器端的程式語言比以往更加的強大和穩定。

PHP廣泛應用於大型項目,例如Facebook使用PHP來建立和維護他們的內部系統。 Wordpress使用PHP作為它的核心使其佔據了26%的web專案。目前82%的web網站使用PHP作為其伺服器端的開發語言(根據Web Tecnology Surveys網站調查)

在這篇文章內,我們將一起來分析3中最流行的PHP框架:Symfony、Laravel 、和Yii。我門透過說明怎麼比較它們來幫助大家選擇一個最適合自己需求的框架。

為什麼選擇使用PHP框架?

是什麼讓我們使用框架而不是使用純粹的php原生語言來開發我們的應用?使用框架的一些好處如下:

  • PHP框架使開發過程更快,例如,你不必為從資料庫中查詢資料去寫複雜的查詢語句。 PHP框架提供了CRUD操作(create創建,read讀取,update更新,delete刪除)

  • #框架讓開發者更容易的擴充系統

#比起普通的php應用程式碼的維護更簡單。應用的程式碼更加的精簡且易操作

    MVC模型保證來快速的開發
  1. 對於常見的安全威脅,框架能更好的保護應用web應用的安全
  2. don't repeat yourself(不要重複)原則保證使用最少的程式碼發揮最大的作用
  3. 以上的好處很顯著以致於不容忽視。即使使用原生的PHP也能用來開發任何的應用,但是目前的開發規範要求使用工具和時間管理的技巧來滿足市場的需要。
  4. 怎麼選擇PHP框架

  5. 回答下面的一些問題可以幫助你選擇適合自己的框架:
  6. ##這個框架有哪些特點和功能? (它提供了我的需求嗎?)
  7. 這個框架學習容易嗎?

這個框架可擴充行強嗎?

這個框架的核心團隊是否在積極的開發和維護它?

這個框架提供長期支持嗎?

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

Symfony、 Laravel和Yii

在深究技術細節之前,我們先來整體介紹下這3個競爭者

Symfony

Symfony 是一套可重複使用的PHP元件,這些元件可讓開發者開發出易擴展且高效能的應用。有30個組件可供選擇,開發者有完全的自由在RAD環境中實驗和工作。 Symfony 的APIs也使得它很容易的與第三方應用整合,它也能與流行的前端框架一起使用,例如AngularJs。

很多的流行項目包括Drupal和phpBB也使用了Symfony框架。實際上目前最受歡迎的框架Laravel也是建立在Symfony上。

Laravel

Laravel作為「為web藝術家而生的框架」被廣泛使用,它提供了極其優秀的社區並獲得了最流行的框架的稱號。

在2015年5月 Laravel 發布聲明 Laravel5.1版本將提供2年的長期支援。 2015年11月5.2版推出。很多託管提供者提供Laravel支援並提供Laravel應用的託管解決方案。

Yii

Qiang Xue 在2008年推出了Yii框架,Yii框架安全、快速、效能卓越。 Yii使用Composer作為它的php依賴管理工具來幫助處理不同的依賴和其安裝。得益於惰性加載技術的使用,Yii框架是目前速度最快的框架。

Yii另一個偉大的特性是整合來JQuery。這種整合使得前端的開發者開始的擁抱它,並且它使用腳手架產生程式碼,類似與Symfony。 Yii也使用元件來快速開發應用程式。

怎麼比較它們

這3個框架開發Web2.0應用都非常的好,但是各自服務與不同的目的。讓我們看看它們的特性以及它們目前的狀態。 ######模版引擎######模板引擎在編寫前端程式碼時,簡化開發者的工作並提供更好的功能。模版引擎提供的特性包括自動html程式碼轉義和過濾、添補原生php留下的間隙。 ######Symfony Twig 模板系統######Twig是一個PHP的現代模板系統。 Symfony利用Twig的優勢讓開發者寫出更乾淨、簡潔的程式碼。 ######詳見Twig網站學習更多的關於twig的特性######Laravel Blade 模板系統#######不像其他的模板系統,Blade讓你在視圖中是用PHP代碼。而Blade對應用程式的效能影響幾乎為零,因為視圖檔案都是以###.blade.php###作為副檔名。視圖檔案所有的程式碼在程式運行中都轉換為了原生的php。 ###

Yii 預設範本系統

Yii預設沒有使用任何第三方模版系統,但這並不意味著它缺少對模版引擎的支援。模板引擎的選擇取決去開發團隊。 Yii推薦使用Twig和Smarty模板引擎。介於Symfony使用的是Twig,所以如果你以前使用過Symfony,你可能會想在你的下一個Yii框架中使用Twig。

這裡沒有明顯的優勝者。 3個框架都使用模版引擎使前端程式碼的書寫和維護更簡單。 Yii的一個小優點是它沒有事先預設一個模板系統。

框架不同點

每個框架都不一樣。 Symfony致力於提供可重複使用的元件和提供最佳的模組化支援。 Symfony也使用模型和控制器來開發web應用,對於新的開發者這看起來有點老套。但確實好用。對於模組化框架來說Symfony就是一個很好的例子。你可以使用模組化的方式在你的專案中使用Symfony提供的30個元件。

Yii框架使用MVC模型(Symfony也提供對MVC的支援)

#Symfony 可以用來快速開發和用於複雜專案。即使對哪個框架最適合開發複雜專案有爭議,Symfony相對於其他框架顯示出了卓越的複雜處理能力

Yii也使用元件但是不像Symfony一樣模組化。 Laravel不像另外2個框架一樣提供激進的模組化支援。

如果你正在尋找一個模組化的框架,就去選擇Symfony,其他的話,Laravel和Yii都是很好的選擇。

安裝

這三個框架提供了許多安裝程式。如果你用Composer去處理安裝包,你會很高興發現,所有的框架都可以透過Composer安裝

對Symfony而言,Composer的角色更加關鍵。透過使用PHPComposer依賴管理器,元件處理的想法能更好的實現。

各個框架還有其他的安裝方式。例如,您可以使用簡單的歸檔方法安裝框架。

安裝完成後,Yii為你提供了一個網頁應用程式和一個基本模板來運作。 Symfony2也提供了一個開始的示範程式。

Laravel透過Composer的composer create-project指令或透過Laravel安裝器也能簡單的進行安裝。詳情請查看laravel安裝指南。

快速開發

從公司或客戶的角度來看,快速地將應用程式推向市場以滿足消費者的需求並擊敗競爭對手是很重要的。
symfony有一個強大社去支撐,並作為一個健壯的框架而凸顯出來。 Laravel正在迅速成長,但在被視為PHP實際的開發選擇之前,Laravel還有很長的路要走。
另一方面,如果你不認識任何PHP框架,又想盡快上手,那麼可以考慮Laravel。 Laravel有一個簡單的學習曲線,你會發現網路上很多教學來幫助你開始。
Yii的性能有一個新的水平,並為快速的程式碼生成和開發提供了程式碼腳手架。

效能

任何應用程式的效能只關係到它是否是一個使用關鍵資料的即時應用程式。有多少依賴高效能的web應用程式?並不是很多,但是框架的性能在許多項目中可以起到關鍵的作用。

社交網絡是即時事件應用的首選例子,我們的一個明星的產品-jadson使用yii2建造了一個移動社交網絡,當初我們為編寫高性能的應用而選擇一個最好的框架時。 Yii作為最快的PHP框架而凸顯出來。

Laravel的性能是一個頗有爭議的問題。它是最慢的,但這有關係嗎?你會找到線上資源去加速它的效能,包括GitHub上的指南讓你的laravel應用變得更快。

資料庫支援

Symfony 2提供了更好的資料庫支援。你可以使用一組資料庫,包括NoSQL和DynamoDB。
Yii和Laravel在這方面也同樣有用,但他們支援的資料庫比symfony的少。每個框架支援的資料庫如表1所示。

怎麼選擇適合自己php框架

社群和資源

開源框架持久性的一個重要預測因素是其社群的力量。這3個框架都有穩定而堅實的社區,儘管Symfony的社區可能更成熟一些,但是社區正在進化,所以對社區的未來的動態預測很難。
說到學習資料和文檔,Laravel突出出來,儘管Symfony和Yii並沒有落後很多。

可擴展性

框架是可以透過擴充或套件進行擴充的結構,用來改進了它們的功能和範圍。說到擴展,Laravel是贏家。 packalyst一個laravel擴充包的函式庫提供超過9000的擴充包。另一方面 Yii和symfony分別提供了2800左右的擴展和2830的包,Laravel提供來超過3被的擴展。 Laravel在這方面似乎是最好的框架。

相同點

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

  • 3個框架都是全棧的php框架,從前端程式碼書寫到後段資料獲取,都提供了建構web應用的功能

  • 專案都是開源的,並且都託管在GitHub上,這使得任何人都能容易的貢獻自己的代碼

  • 所有的框架都有很好的文檔註釋並都與一個龐大的社群支援

  • 都支援ORM(Object Relationship Mapping 物件關係映射)。 ORM非常適合編寫應用程式的物件導向程式碼。

  • 對於開發Web2.0應用都夠強健、安全且可靠

仍然迷惑?也許這些清單有助於你縮小選擇範圍:

Symfony:

  • #提供長期支援版本

  • ##有大量的特性

  • 它是目前最穩定的框架

  • #基於元件的框架,提供可擴展的模組化功能

  • 有強大的社區支持和豐富的學習資源

Yii:

  • 天生帶有ajax支持

  • 因為提供更快的操作,它是開發即時應用的最佳選擇

  • #高度可擴展

  • 錯誤處理強大

  • 有利於開發Restful風格網路服務

  • 有強大的社群支持和豐富的學習資源

Laravel:

  • 最受歡迎的框架

  • 支援Composer管理擴充包

  • 單元測試做得很好

  • 提供了大量的擴充包來擴展框架的功能

  • 有強大的社群支持與豐富的學習資源

結論

在Symfony與Laravel與Yii的競爭中,3個框架都是極佳的選擇,都為開發者提供來全端的開發環境。對我來說,作為一種新興的且沒有停止的跡象的明星-Laravel是一個勝利者。

本文為翻譯文件-- 原文連結
相關推薦:

php框架CodeIgniter中的redis怎麼使用


##

以上是怎麼選擇適合自己php框架的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
可以在PHP會話中存儲哪些數據?可以在PHP會話中存儲哪些數據?May 02, 2025 am 12:17 AM

phpsessionscanStorestrings,數字,數組和原始物。

您如何開始PHP會話?您如何開始PHP會話?May 02, 2025 am 12:16 AM

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

什麼是會話再生,如何提高安全性?什麼是會話再生,如何提高安全性?May 02, 2025 am 12:15 AM

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。

使用PHP會話時有哪些性能考慮?使用PHP會話時有哪些性能考慮?May 02, 2025 am 12:11 AM

PHP会话对应用性能有显著影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHP會話與Cookie有何不同?PHP會話與Cookie有何不同?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

PHP如何識別用戶的會話?PHP如何識別用戶的會話?May 01, 2025 am 12:23 AM

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

確保PHP會議的一些最佳實踐是什麼?確保PHP會議的一些最佳實踐是什麼?May 01, 2025 am 12:22 AM

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

PHP會話文件默認存儲在哪裡?PHP會話文件默認存儲在哪裡?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具