一:什麼是PHP框架?
PHP框架簡單來說,就是由PHP語言編寫的一種可以在專案開發過程中,提高開發效率,建立更為穩定的程式,並減少開發者重複編寫程式碼的基礎架構,目前國內最流行的是ThinkPHP和Laravel框架。
PHP中文網《第20期PHP小白到大牛三個月直播班》選擇的是就是國內用的最多,也是最適合入門的ThinkPHP6框架教學。(注:20期剛開課,還剩少量名額,欲報名從速!)
報名諮詢↓↓↓
QQ/微信:27220243(鍾老師)、 微信:phpcn01 (月月老師)
(長按識別新增微信)
二:為什麼要使用PHP框架?
與使用原生PHP語言從頭開始編碼相比,使用PHP框架有很多優勢。
1、加快開發進度
因為PHP框架有內建的庫和工具,所以大大縮短了專案開發所需的時間。
例如,CakePHP框架有Bake命令列工具,它可以快速建立應用程式中所需的任何框架程式碼。幾個流行的PHP框架都整合了PHPUnit庫,以便於測試。
2、要編寫的程式碼更少
使用框架內建的函數意味著不需要編寫太多原始程式碼。
3、功能性資源庫很多
開發人員需要在web應用程式中執行的許多常見的任務,例如表單驗證、資料清理和CRUD操作(建立、讀取、更新和刪除)。
使用框架就不必為這些任務編寫自己的函數,只需使用框架封裝好的函數即可。
4、遵循良好的編碼實踐
PHP框架通常遵循編碼的最佳實踐性,例如,他們根據功能將程式碼整齊地劃分為多個目錄。
這些目錄迫使您以更乾淨、整潔和更易維護的方式組織程式碼。
框架也有自己的變數、目錄、空間等命名規範,您應該遵循這些約定。
5、比自己編寫的應用程式更安全
專案上線以後可能存在很多PHP安全威脅,包括跨站點指令碼、SQL隱碼攻擊和跨站點請求偽造。除非您採取正確的應對措施去保護您的程式,否則您的PHP web應用程式將易受攻擊。
雖然使用PHP框架並不能代替編寫安全程式碼,但它可以最大限度地減少駭客利用漏洞的機會。好的框架具有內建的資料清理功能,可以抵禦上述常見威脅。
6、更好的團隊合作
如果以下方面不明確,團隊開發的專案可能會出錯:
檔案
設計決策
規範標準
使用框架為專案設定了明確的基本規則。即使其他開發人員不熟悉該框架,他們也能夠快速學習並協同工作。
7、易於維護
PHP框架鼓勵程式碼重構,並促進DRY開發(DRY-Don’t Repeat Yourself),由此產生的更精簡的程式碼庫需要更少的維護。
您也不必擔心維護框架核心,因為框架開發者會為您維護。
三:使用PHP框架之前需要了解的內容
1. PHP原生基礎
在使用PHP框架之前,您首先要掌握PHP原生基礎!
如果您對該語言沒有很好的掌握,那麼您將很難掌握基於PHP封裝的框架。
推薦教學:
公益免費課:
01.《小白拯救者: PHP7基礎語法快速預覽》
https://www.php.cn/course/1147.html
02.《php8,我來也》
https://www.php.cn/course/1188.html
收費課:
01.VIP會員專屬課:前端+後端PHP+實戰(錄製課)
https://www.php.cn/vip.html
02.線上直播班:前端+後端PHP+綜合實戰(含輔導解答、作業批改)
https://www.php.cn/k.html
2. 物件導向
瞭解PHP物件導向程式設計也是必不可少的一步,因為大多數現代PHP框架都是物件導向的,確保理解類、物件、繼承、方法、 traits和存取修飾符等概念。
3. 資料庫
由於許多web應用程式的資料獲取都需要連線資料庫,因此您應該瞭解資料庫和SQL語法,每個PHP框架都有自己受支援的資料庫列表。
4. 物件關係對映(ORM)模型
ORM是一種使用物件導向語法而不是SQL語法存取資料庫資料的方法,使用ORM,您可以用熟悉的PHP編寫資料庫查詢,但有時也可能需要使用SQL語句。
許多PHP框架都內建了自己的ORM,例如,Laravel使用了Eloquent ORM。其他框架則使用一種類似於ORM的開源原則。
5. WEB伺服器環境
瞭解Apache和Nginx等web伺服器的工作原理對於框架的使用也是很有幫助的,因為您可能需要在伺服器上組態檔,以使應用程式以最佳方式執行。
您可能會在本地進行大部分開發,因此您也需要了解localhost。另一種選擇是使用Vagrant和VirtualBox在虛擬環境中建立和測試應用程式。
6. 模型-檢視-控制器架構模式
PHP框架通常遵循模型-檢視-控制器(MVC)設計模式。這個概念將資料的操作與資料的渲染分離開來。
Model模型儲存業務邏輯和應用程式資料,它將資料傳遞給檢視層。使用者與檢視互動,然後交由控制器處理這些互動指令,接著控制器向模型發出這些指令,迴圈繼續。
簡而言之:
模型是關於資料的,
檢視是關於頁面渲染的,
控制器是關於行為的。
關於MVC模式的工作原理,我們可以類比在酒吧點雞尾酒。
使用者就好比到達酒吧(檢視
)需要酒水的顧客,使用者將他們的酒水訂單交給酒保(控制器
)。
控制器根據模型——配方、配料和裝置完成訂單。根據雞尾酒的不同,他們可能會使用以下任何一種或其他物品:
·含酒精飲料 ·果汁 ·冰 ·檸檬 ·玻璃 ·雞尾酒搖壺 ·油橄欖 ·攪拌器
成品雞尾酒放在吧檯上供使用者享用。如果使用者想再喝一杯,他們必須先與控制器通話。他們不允許進入模型並調變自己的飲料。
在PHP應用程式術語中,MVC可以對應以下內容:
模型:資料庫
檢視:一個或多個HTML頁面
控制器:存取和更新資料庫的功能
7. 命令列介面(CLI)
Laravel有自己的CLI Artisan控制檯。使用Artisan中的「生成」命令,可以快速構建專案的模型、控制器和其他元件。
熟悉命令列也是使用Composer PHP包管理器的關鍵。Yii框架是使用Composer來安裝和管理專案依賴 (應用程式執行所需的包)的幾種框架之一。
Packagist是可以使用Composer安裝的軟體包的主要儲存庫。一些最流行的Composer軟體包使用Symfony框架執行。
五:您應該如何考量一款PHP框架好不好?
以下是小編為您總結的為專案選擇最佳PHP框架時需要考慮的一些因素:
首先,如果您剛接觸PHP框架,學習路線不應該太曲折。
如果框架太難掌握,你就不想花寶貴的時間學習它。幸運的是,PHP是最容易學習的程式語言之一。
接下來,您需要一個易於使用並節省時間的框架。
PHP框架應該滿足您對專案的技術要求,大多數框架都有一個最低的PHP版本和它們使用的某些PHP擴充套件。
此外,您需要確保您所選的框架支援您所選的資料庫,並且可以將該框架與要部署到的web伺服器一起使用。
選擇一個功能平衡的框架。對於某些專案來說,功能豐富的框架可能是一個福音,如果您不需要很多特性,那麼可以選擇一個精簡的框架。
一些重要的特性包括:
測試
快取記憶體儲存
模板引擎:使用PHP類在HTML中輸出PHP的一種方法
安全
如果您需要構建可伸縮的應用程式,請選擇支援以上功能的框架。
最後,如果想靈活運用PHP框架,離不開良好的檔案和生態支援。
一個擁有大型且充滿活力的社群的框架也更有可能經受住時間的考驗,並且在您遇到困難時也能夠為您提供幫助。
六:2022年最好的PHP框架有哪些?
下面是目前使用的一些最好的PHP框架:
1.ThinkPHP(國內使用最多,入門簡單,適合初學者)
2. Laravel(全球使用最多,號稱最優雅的框架,入門難)
3. Symfony
4. CodeIgniter(簡稱CI,非常輕量級)
5. Zend Framework / Laminas Project
6. Yii (Framework)(國內外貿行業用的較多)
7. CakePHP
8. Slim
9. Phalcon
10. FuelPHP
11. Fat-Free Framework
ThinkPHP
ThinkPHP由國人開發,是一個免費開源、物件導向的輕量級PHP開發框架。誕生於2006年初,國內使用最多,TW511.COM20期PHP直播班教學專案就是用的ThinkPHP6,非常適合初學者!
熱門版本
ThinkPHP5.x:2015年推出,MVC模式,支援PHP>=5.6
ThinkPHP6.x:2019年全新推出,開始使用Composer安裝及更新,支援PHP>=7.1
Laravel
Laravel被譽為「面向Web工匠的PHP框架」,它是由Taylor Otwell開發的,Taylor Otwell想要一個包含CodeIgniter所沒有的特性的框架,比如使用者身份驗證。
Laravel快速瞭解
釋出日期:2011年6月
當前版本:Laravel8 ——2020年9月8日釋出。
技術要求:
PHP>=7.2.5(或使用Laravel Homestead)
支援Composer方式的安裝
資料庫支援MySQL 5.6+、PostgreSQL 9.4+、SQLite 3.8.8+、SQL Server 2017+。
Laravel的優點
Laravel Homestead 是 Lavarel 官方預封裝的 Vagrant Box ,它為你提供了一個絕佳的開發環境,而無需你在本地機器上安裝 PHP 、Web 伺服器及任何其他伺服器軟體。媽媽再也不用擔心弄亂你的作業系統了!
如果您是Mac使用者,還可以選擇使用Laravel Valet作為您的開發環境,Laravel Valet支援Symfony、CakePHP 3、Slim和Zend以及WordPress等框架。
Laravel使用名為Blade的模板引擎。與其他模板引擎相比,它的一個優勢是可以在Blade中使用PHP,而其他引擎無法使用PHP。
Packalyst是Laravel軟體包的集合,有15000多個軟體包可以在專案中使用。
Laravel提供了一系列安全功能和方法,包括以下內容:
身份驗證
授權
電子郵件驗證
加密
雜湊
密碼重置
Laravel Eloquent ORM和流暢的查詢生成器 在使用PDO引數繫結時可以防止SQL隱碼攻擊。
預設情況下,還啟用了跨站點請求偽造(CSRF)保護,每當您在應用程式中定義 HTML 表單時,都應在表單中包含一個隱藏的 CSRF _token 欄位。
Laravel的Artisan控制檯命令列工具允許開發人員自動執行重複任務並快速生成框架程式碼,從而加快了開發速度。
如果您需要進行PHP基準測試,Laravel是您可選的PHP框架中速度最快的。
Laravel生態系統有幾個有用的工具,例如用於編譯CSS和JS資源的Mix,以及用於OAuth身份驗證的Socialite。
Laravel受益於一個大型開發人員社群(如WordPress)。
小編為您整理了一些社群地址:
Laracasts:包含課程、部落格、播客和論壇的學習門戶
Laravel.io:一個擁有45000多名使用者的社群門戶。
The Laravel subreddit:一個擁有50000名Laravel工匠的社群門戶。
laravel視訊教學:
https://www.php.cn/course/list/23.html
laravel技術文章:
https://www.php.cn/phpkj/laravel/
課程推薦:
TW511.COM新上線的《Laravel 9 學習正當時—保姆級教學,想學不會都難!》帶你領略專門為Web工匠打造的PHP框架最新版本 Laravel 9,讓你的程式碼更像藝術家的作品!
(原價¥279元,限時折扣價¥166元,僅限1天)
本課程將從零開始,帶你學會使用世界上最流行的PHP框架開發任何專案,併為你節省大量開發和維護時間,提升開發效率!
開通地址:
https://www.php.cn/course/1421.html
(長按識別二維條碼開啟)
Symfony
Symfony既是一個PHP框架,也是一個用於構建網站的PHP元件集合。
Symfony快速瞭解
釋出日期:2005年10月
當前版本:Symfony5.1.4
技術要求:
PHP>=7.2.5
支援Composer方式的安裝
Symfony的優點
Symfony是需要可延伸的網站和應用程式的最佳選擇。它的模組化元件系統非常靈活,可以讓您選擇多種專案所需的元件。
Symfony支援流行PHP框架中的大多數資料庫:
Drizzle
MySQL
Oracle
PostgreSQL
SAP Sybase SQL Anywhere
SQLite
SQLServer
與資料庫互動的最佳方式是通過 Doctrine ORM。
Symfony使用資料對映器將物件對映到資料庫,這將使物件模型和資料庫模式保持分離,這意味著如果您需要更改資料表的某一列,無需在程式碼庫中進行多次更改。
使用內建工具列Debugging偵錯Symfony專案非常簡單。
Symfony使用Twig模板引擎,該引擎易於學習、快速且安全。
Packagist列出了4000多個Symfony軟體包,可供您下載和使用。
Symfony擁有Sensio實驗室的商業支援。這意味著與大多數其他PHP框架不同,Symfony擁有專業的支援團隊,它還有長期的版本支援,支援期為3年。
CodeIgniter
CodeIgniter框架可以幫助您快速構建web應用程式,因為它具有最小的設定。
CodeIgniter快速瞭解
釋出日期:2006年2月
當前版本:CodeIgniter4.0.3
技術要求:
PHP>=7.2
資料庫支援MySQL、PostgreSQL、SQLite3
CodeIgniter的優點
CodeIgniter以其執行速度著稱,它是我們在PHP基準測試中嘗試的四個PHP框架中速度第二快的。
CodeIgniter框架的佔用資源很小(1.2MB),您可以新增所需的元件。
CodeIgniter很靈活:它鼓勵使用MVC架構進行開發,但您也可以編寫非MVC應用程式。
該框架內建了對CSRF和XSS攻擊的防禦措施,以及上下文相關的跳脫和內容安全策略。
CodeIgniter支援多種快取方法,以加快應用程式的執行速度。
如前所述,與其他框架相比,CodeIgniter具有簡單的學習曲線,並且具有很強的可延伸性。
CodeIgniter的社群由一個論壇和Slack組組成。
推薦教學:
《CI框架30分鐘極速入門》
https://www.php.cn/course/760.html
Zend Framework / Laminas Project
Zend框架是一個久負盛名的PHP框架,現在正在向Laminas Project過渡。
如果您的專案正在使用Zend, 小編強烈建議您將專案遷移到Laminas,因為Zend不再更新。
Laminas Project由3部分組成:
1. Laminas元件和MVC
2. Mezzio
3. Laminas API工具
Laminas 快速瞭解
釋出日期:2006年2月
當前版本:3.0.0 (Zend) or 1.3.0 (Laminas)
技術要求:
PHP>=5.6(Zend)或>=7.3(Laminas)
支援Composer方式的安裝
資料庫支援MariaDB、MySQL、Oracle、IBM DB2、Microsoft SQL Server、PostgreSQL、SQLite和Informix Dynamic Server
Laminas/Zend的優點
Zend框架的下載量超過5.7億,它也是企業使用最多的PHP框架。Zend遵循PHP框架互操作組(PHP Framework Interop Group 簡稱為PHP-FIG)標準,這意味著其程式碼可以輕鬆地移植到其他框架。
與Symfony一樣,您可以使用所需的元件,您可以使用Zend構建RESTful API。
Laminas社群有一個論壇和Slack組,用於開發者共同作業和框架支援。
Yii (Framework)
這個框架的名字叫Yii,在漢語中的意思是「簡單而進化」。它還代表「Yes, It Is!」
Yii 快速瞭解
釋出日期:2008年10月
當前版本:Yii2.0.35
技術要求:
PHP>=5.4.0 推薦PHP7以上版本
支援Composer方式的安裝
資料庫支援SQLite、MySQL、PostgreSQL、MSSQL或Oracle
Yii 的優點
你可以在幾分鐘內快速上手。因為它的檔案編寫良好,易於理解。
Yii框架有幾個安全措施,如bcrypt密碼雜湊、加密、身份驗證和授權。它的檔案中提供了防止SQL隱碼攻擊、XSS和CSRF攻擊的最佳範例,不容錯過。
Gii程式碼生成器可以快速為您構建骨架程式碼,節省開發時間。
Yii支援四種型別的快取來加速web應用程式:資料快取、片段快取、頁面快取和HTTP快取。
您可以在Yii專案中執行第三方程式碼。
Yii社群通過Slack或IRC提供線上實時支援。Yii的生態圈還包括一個討論論壇和社交媒體渠道。該社群向其活躍成員頒發名人堂徽章和參賽機會。
Yii框架視訊教學推薦:
https://www.php.cn/toutiao-362431.html
CakePHP
CakePHP是一個快速、乾淨的PHP開發框架。
CakePHP 快速瞭解
釋出日期:2005年4月
當前版本:CakePHP4.1.1
技術要求:
PHP>=7.2 推薦PHP7.4
支援Composer方式的安裝
資料庫支援MySQL 5.6+, MariaDB 5.6+, PostgreSQL 9.4+, SQLite 3.8, SQL Server 2012+
CakePHP的優點
CakePHP設定最少、最容易上手,因為您不必處理XML或YAML檔案。一旦完成了資料庫設定,就可以開始愉快編碼了。
CakePHP有自己的內建ORM,使用起來既快速又簡單,它的安全特性包括加密、密碼雜湊、表單資料保護和CSRF防禦。
CakePHP的元件和助手函數簡化了開發,減少了您必須執行的普通任務的數量。
Github提供了一個有用的CakePHP資源和外掛列表。
https://github.com/friendsofcake/awesome-cakephp
Slim
Slim是一個精簡、靈活的微型PHP框架,由JoshLockhart建立。它關注於接收HTTP請求、呼叫回撥和返回HTTP響應。
Slim 快速瞭解
釋出日期:2010年9月
當前版本:Slim4.5.0
技術要求:
PHP>=7.2
具有URL重寫的Web伺服器
Slim的優點
Slim的程式碼庫很精簡,因為它沒有第三方依賴關係,因此,執行速度非常快。
Slim特別適合構建小型應用程式和程式介面,此外Slim還整合了第一方和第三方元件。
Slim很容易學習和理解。你可以在幾分鐘內執行一個「Hello World」應用程式。Slim被Sland網站上的開發人員評為最佳的PHP框架。
Tidelift提供對Slim的專業支援。
Phalcon
Phalcon是為提高速度而構建的PHP框架,它最初是作為以Zephir和C編寫的web伺服器的擴充套件而出現的,但是您不需要了解C。Phalcon可以使開發人員使用由框架生成的PHP類和名稱空間。
Phalcon 快速瞭解
釋出日期:2012年11月
當前版本:Phalcon4.0.6
技術要求:
PHP>=7.2
PSR擴充套件
Phalcon的優點
Phalcon設計的初衷是使專案快速執行,因為它具有以下特點:
架構簡單。
Zephir、C擴充套件和PHP的一次性載入。
程式碼是編譯的,而不是解釋的,因此速度更快。
記憶體常駐,意味著您可以隨時在需要時呼叫它。
與大多數其他PHP框架不同,Phalcon不使用檔案讀取和檔案統計資訊,從而提高了效能。
由於Phalcon是鬆散耦合的,因此您可以建立自己的目錄結構,再者Phalcon底層程式碼不存在於專案目錄中,這一點使得程式碼變得很輕量級。
Phalcon的安全元件有助於密碼雜湊和CSRF保護,模板引擎Volt速度非常快,並且附帶了很多擴充套件類庫,可以幫助您輕鬆建立檢視。
遇到任何問題,您可以通過Phalcon的檔案、論壇、Discord chat、Stack Overflow和多個社交媒體平臺尋求解決方案與支援。
FuelPHP
FuelPHP是一個社群驅動的PHP框架,由300多個貢獻者參與完成。
FuelPHP 快速瞭解
釋出日期:2011年6月
當前版本:FuelPHP1.8.2
技術要求:
PHP>=5.4
任何wed伺服器
FuelPHP的優點
FuelPHP也採用了MVC架構模式,但也支援HMVC(Hierarchical Model View Controller),即在控制器和檢視之間新增另一層。
HMVC設計模式的優點是:
更好的程式碼組織
更大的模組化
更具擴充套件性
鼓勵程式碼重用
您可以為您的專案選擇所需要的檔案和資料夾結構,因為FuelPHP在這方面的約束很少。
此外,FuelPHP非常重視安全性,具有以下特性:
輸出編碼
CSRF保護
輸入、URI和XSS過濾
使用者的輸入會被跳脫後才參與組建SQL語句
FuelPHP有自己的命令列實用程式——oil,您可以用它來執行任務、偵錯程式碼和生成公共元件。
此外,FuelPHP的ORM功能很強大,但也很輕量級。您可以在FuelPHP論壇、Facebook和Twitter上加入FuelPHP社群。
Fat-Free-Framework
與Slim一樣,Fat-Free-Framework(簡稱F3)也是一個微型框架,它的目標是在高效的特性、框架簡單性、易用性和速度之間達到平衡。
Fat-Free-Framework 快速瞭解
釋出日期:2009
當前版本:Fat-Free-Framework3.7.2
技術要求:
PHP>=5.4
資料庫支援MySQL、SQLite、MSSQL/Sybase、PostgreSQL和MongoDB。
Fat-Free-Framework的優點
F3的程式碼庫大約為65Kb,因此執行速度很快,別看它很輕,F3仍然具備了您所期望的所有功能。您可以根據需要使用可選外掛對框架進行擴充套件。
F3上手非常容易,開箱即用,無需使用Composer、curl或依賴注入即可開始使用,您可以在幾分鐘內建立Hello World應用程式。
F3所有的元素幾乎都是模組化的,因此您可以只使用構建web應用程式所需的部分,F3預設情況下不會新增您不需要的程式碼,從而使您的應用程式保持在最「幹練」的狀態。
F3的檔案也很清晰易懂,並附有大量的範例演示。Fat-Free框架提供了模板引擎的選擇:您可以使用PHP、F3自己的模板引擎或其他模板引擎,如Smarty或Twig。
F3開發人員一般在Slack和Fat-Free Framework Google Group上比較活躍。
七:對於初學者來說,哪種PHP框架最好?
對於初學者來說,起步階段最好選擇那些更簡單、更適合國人的框架,比如ThinkPHP框架。
初學者掌握了簡單的框架以後,你就可以進入一個功能更加豐富的領域了,屆時再接觸複雜大型框架,比如laravel就比較得心應手了,也不會澆滅學習的熱情。
那麼您最喜歡哪種PHP框架,為什麼?請在下面的評論中告訴我們!