什么是PHP框架?為什么要使用PHP框架?本篇文章就來(lái)和大家聊聊PHP框架的優(yōu)勢(shì),并總結(jié)分享11款2022年最流行的PHP框架,希望對(duì)大家有所幫助!
一:什么是PHP框架?
PHP框架簡(jiǎn)單來(lái)說(shuō),就是由PHP語(yǔ)言編寫(xiě)的一種可以在項(xiàng)目開(kāi)發(fā)過(guò)程中,提高開(kāi)發(fā)效率,創(chuàng)建更為穩(wěn)定的程序,并減少開(kāi)發(fā)者重復(fù)編寫(xiě)代碼的基礎(chǔ)架構(gòu),目前國(guó)內(nèi)最流行的是ThinkPHP和Laravel框架。
PHP中文網(wǎng)《第20期PHP小白到大牛三個(gè)月直播班》選擇的是就是國(guó)內(nèi)用的最多,也是最適合入門(mén)的ThinkPHP6框架教學(xué)。(注:20期剛開(kāi)課,還剩少量名額,欲報(bào)名從速?。?/p>
報(bào)名咨詢↓↓↓
QQ/微信:27220243(鐘老師)、 微信:phpcn01 (月月老師)
(長(zhǎng)按識(shí)別添加微信)
二:為什么要使用PHP框架?
與使用原生PHP語(yǔ)言從頭開(kāi)始編碼相比,使用PHP框架有很多優(yōu)勢(shì)。
1、加快開(kāi)發(fā)進(jìn)度
因?yàn)镻HP框架有內(nèi)置的庫(kù)和工具,所以大大縮短了項(xiàng)目開(kāi)發(fā)所需的時(shí)間。
例如,CakePHP框架有Bake命令行工具,它可以快速創(chuàng)建應(yīng)用程序中所需的任何框架代碼。幾個(gè)流行的PHP框架都集成了PHPUnit庫(kù),以便于測(cè)試。
2、要編寫(xiě)的代碼更少
使用框架內(nèi)置的函數(shù)意味著不需要編寫(xiě)太多原始代碼。
3、功能性資源庫(kù)很多
開(kāi)發(fā)人員需要在web應(yīng)用程序中執(zhí)行的許多常見(jiàn)的任務(wù),例如表單驗(yàn)證、數(shù)據(jù)清理和CRUD操作(創(chuàng)建、讀取、更新和刪除)。
使用框架就不必為這些任務(wù)編寫(xiě)自己的函數(shù),只需使用框架封裝好的函數(shù)即可。
4、遵循良好的編碼實(shí)踐
PHP框架通常遵循編碼的最佳實(shí)踐性,例如,他們根據(jù)功能將代碼整齊地劃分為多個(gè)目錄。
這些目錄迫使您以更干凈、整潔和更易維護(hù)的方式組織代碼。
框架也有自己的變量、目錄、空間等命名規(guī)范,您應(yīng)該遵循這些約定。
5、比自己編寫(xiě)的應(yīng)用程序更安全
項(xiàng)目上線以后可能存在很多PHP安全威脅,包括跨站點(diǎn)腳本、SQL注入攻擊和跨站點(diǎn)請(qǐng)求偽造。除非您采取正確的應(yīng)對(duì)措施去保護(hù)您的程序,否則您的PHP web應(yīng)用程序?qū)⒁资芄簟?
雖然使用PHP框架并不能代替編寫(xiě)安全代碼,但它可以最大限度地減少黑客利用漏洞的機(jī)會(huì)。好的框架具有內(nèi)置的數(shù)據(jù)清理功能,可以抵御上述常見(jiàn)威脅。
6、更好的團(tuán)隊(duì)合作
如果以下方面不明確,團(tuán)隊(duì)開(kāi)發(fā)的項(xiàng)目可能會(huì)出錯(cuò):
-
文檔
-
設(shè)計(jì)決策
-
規(guī)范標(biāo)準(zhǔn)
使用框架為項(xiàng)目設(shè)置了明確的基本規(guī)則。即使其他開(kāi)發(fā)人員不熟悉該框架,他們也能夠快速學(xué)習(xí)并協(xié)同工作。
7、易于維護(hù)
PHP框架鼓勵(lì)代碼重構(gòu),并促進(jìn)DRY開(kāi)發(fā)(DRY-Don’t Repeat Yourself),由此產(chǎn)生的更精簡(jiǎn)的代碼庫(kù)需要更少的維護(hù)。
您也不必?fù)?dān)心維護(hù)框架核心,因?yàn)榭蚣荛_(kāi)發(fā)者會(huì)為您維護(hù)。
三:使用PHP框架之前需要了解的內(nèi)容
1. PHP原生基礎(chǔ)
在使用PHP框架之前,您首先要掌握PHP原生基礎(chǔ)!
如果您對(duì)該語(yǔ)言沒(méi)有很好的掌握,那么您將很難掌握基于PHP封裝的框架。
推薦教程:
公益免費(fèi)課:
01.《小白拯救者: PHP7基礎(chǔ)語(yǔ)法快速預(yù)覽》
https://www.php.cn/course/1147.html
02.《php8,我來(lái)也》
https://www.php.cn/course/1188.html
收費(fèi)課:
01.VIP會(huì)員專(zhuān)屬課:前端+后端PHP+實(shí)戰(zhàn)(錄制課)
https://www.php.cn/vip.html
02.線上直播班:前端+后端PHP+綜合實(shí)戰(zhàn)(含輔導(dǎo)解答、作業(yè)批改)
https://www.php.cn/k.html
詳見(jiàn):《20期PHP小白到大牛三個(gè)月直播班》
2. 面向?qū)ο?/strong>
了解PHP面向?qū)ο缶幊桃彩潜夭豢缮俚囊徊?,因?yàn)榇蠖鄶?shù)現(xiàn)代PHP框架都是面向?qū)ο蟮?,確保理解類(lèi)、對(duì)象、繼承、方法、 traits和訪問(wèn)修飾符等概念。
3. 數(shù)據(jù)庫(kù)
由于許多web應(yīng)用程序的數(shù)據(jù)獲取都需要連接數(shù)據(jù)庫(kù),因此您應(yīng)該了解數(shù)據(jù)庫(kù)和SQL語(yǔ)法,每個(gè)PHP框架都有自己受支持的數(shù)據(jù)庫(kù)列表。
4. 對(duì)象關(guān)系映射(ORM)模型
ORM是一種使用面向?qū)ο笳Z(yǔ)法而不是SQL語(yǔ)法訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)的方法,使用ORM,您可以用熟悉的PHP編寫(xiě)數(shù)據(jù)庫(kù)查詢,但有時(shí)也可能需要使用SQL語(yǔ)句。
許多PHP框架都內(nèi)置了自己的ORM,例如,Laravel使用了Eloquent ORM。其他框架則使用一種類(lèi)似于ORM的開(kāi)源原則。
5. WEB服務(wù)器環(huán)境
了解Apache和Nginx等web服務(wù)器的工作原理對(duì)于框架的使用也是很有幫助的,因?yàn)槟赡苄枰诜?wù)器上配置文件,以使應(yīng)用程序以最佳方式運(yùn)行。
您可能會(huì)在本地進(jìn)行大部分開(kāi)發(fā),因此您也需要了解localhost。另一種選擇是使用Vagrant和VirtualBox在虛擬環(huán)境中創(chuàng)建和測(cè)試應(yīng)用程序。
6. 模型-視圖-控制器架構(gòu)模式
PHP框架通常遵循模型-視圖-控制器(MVC)設(shè)計(jì)模式。這個(gè)概念將數(shù)據(jù)的操作與數(shù)據(jù)的渲染分離開(kāi)來(lái)。
Model模型存儲(chǔ)業(yè)務(wù)邏輯和應(yīng)用程序數(shù)據(jù),它將數(shù)據(jù)傳遞給視圖層。用戶與視圖交互,然后交由控制器處理這些交互指令,接著控制器向模型發(fā)出這些指令,循環(huán)繼續(xù)。
簡(jiǎn)而言之:
-
模型是關(guān)于數(shù)據(jù)的,
-
視圖是關(guān)于頁(yè)面渲染的,
-
控制器是關(guān)于行為的。
關(guān)于MVC模式的工作原理,我們可以類(lèi)比在酒吧點(diǎn)雞尾酒。
用戶就好比到達(dá)酒吧(視圖
)需要酒水的顧客,用戶將他們的酒水訂單交給酒保(控制器
)。
控制器根據(jù)模型——配方、配料和設(shè)備完成訂單。根據(jù)雞尾酒的不同,他們可能會(huì)使用以下任何一種或其他物品:
·含酒精飲料 ·果汁 ·冰 ·檸檬 ·玻璃 ·雞尾酒搖壺 ·油橄欖 ·攪拌器
成品雞尾酒放在吧臺(tái)上供用戶享用。如果用戶想再喝一杯,他們必須先與控制器通話。他們不允許進(jìn)入模型并調(diào)制自己的飲料。
在PHP應(yīng)用程序術(shù)語(yǔ)中,MVC可以對(duì)應(yīng)以下內(nèi)容:
-
模型:數(shù)據(jù)庫(kù)
-
視圖:一個(gè)或多個(gè)HTML頁(yè)面
-
控制器:訪問(wèn)和更新數(shù)據(jù)庫(kù)的功能
7. 命令行界面(CLI)
Laravel有自己的CLI Artisan控制臺(tái)。使用Artisan中的“生成”命令,可以快速構(gòu)建項(xiàng)目的模型、控制器和其他組件。
熟悉命令行也是使用Composer PHP包管理器的關(guān)鍵。Yii框架是使用Composer來(lái)安裝和管理項(xiàng)目依賴 (應(yīng)用程序運(yùn)行所需的包)的幾種框架之一。
Packagist是可以使用Composer安裝的軟件包的主要存儲(chǔ)庫(kù)。一些最流行的Composer軟件包使用Symfony框架運(yùn)行。
五:您應(yīng)該如何考量一款PHP框架好不好?
以下是小編為您總結(jié)的為項(xiàng)目選擇最佳PHP框架時(shí)需要考慮的一些因素:
首先,如果您剛接觸PHP框架,學(xué)習(xí)路線不應(yīng)該太曲折。
如果框架太難掌握,你就不想花寶貴的時(shí)間學(xué)習(xí)它。幸運(yùn)的是,PHP是最容易學(xué)習(xí)的編程語(yǔ)言之一。
接下來(lái),您需要一個(gè)易于使用并節(jié)省時(shí)間的框架。
PHP框架應(yīng)該滿足您對(duì)項(xiàng)目的技術(shù)要求,大多數(shù)框架都有一個(gè)最低的PHP版本和它們使用的某些PHP擴(kuò)展。
此外,您需要確保您所選的框架支持您所選的數(shù)據(jù)庫(kù),并且可以將該框架與要部署到的web服務(wù)器一起使用。
選擇一個(gè)功能平衡的框架。對(duì)于某些項(xiàng)目來(lái)說(shuō),功能豐富的框架可能是一個(gè)福音,如果您不需要很多特性,那么可以選擇一個(gè)精簡(jiǎn)的框架。
一些重要的特性包括:
-
測(cè)試
-
高速緩存存儲(chǔ)
-
模板引擎:使用PHP類(lèi)在HTML中輸出PHP的一種方法
-
安全
如果您需要構(gòu)建可伸縮的應(yīng)用程序,請(qǐng)選擇支持以上功能的框架。
最后,如果想靈活運(yùn)用PHP框架,離不開(kāi)良好的文檔和生態(tài)支持。
一個(gè)擁有大型且充滿活力的社區(qū)的框架也更有可能經(jīng)受住時(shí)間的考驗(yàn),并且在您遇到困難時(shí)也能夠?yàn)槟峁椭?/p>
六:2022年最好的PHP框架有哪些?
下面是目前使用的一些最好的PHP框架:
1.ThinkPHP(國(guó)內(nèi)使用最多,入門(mén)簡(jiǎn)單,適合初學(xué)者)
2. Laravel(全球使用最多,號(hào)稱(chēng)最優(yōu)雅的框架,入門(mén)難)
3. Symfony
4. CodeIgniter(簡(jiǎn)稱(chēng)CI,非常輕量級(jí))
5. Zend Framework / Laminas Project
6. Yii (Framework)(國(guó)內(nèi)外貿(mào)行業(yè)用的較多)
7. CakePHP
8. Slim
9. Phalcon
10. FuelPHP
11. Fat-Free Framework
ThinkPHP
ThinkPHP由國(guó)人開(kāi)發(fā),是一個(gè)免費(fèi)開(kāi)源、面向?qū)ο蟮妮p量級(jí)PHP開(kāi)發(fā)框架。誕生于2006年初,國(guó)內(nèi)使用最多,php中文網(wǎng)20期PHP直播班教學(xué)項(xiàng)目就是用的ThinkPHP6,非常適合初學(xué)者!
熱門(mén)版本
-
ThinkPHP5.x:2015年推出,MVC模式,支持PHP>=5.6
-
ThinkPHP6.x:2019年全新推出,開(kāi)始使用Composer安裝及更新,支持PHP>=7.1
Laravel
Laravel被譽(yù)為“面向Web工匠的PHP框架”,它是由Taylor Otwell開(kāi)發(fā)的,Taylor Otwell想要一個(gè)包含CodeIgniter所沒(méi)有的特性的框架,比如用戶身份驗(yàn)證。
Laravel快速了解
發(fā)布日期:2011年6月
當(dāng)前版本:Laravel8 ——2020年9月8日發(fā)布。
技術(shù)要求:
-
PHP>=7.2.5(或使用Laravel Homestead)
-
支持Composer方式的安裝
-
數(shù)據(jù)庫(kù)支持MySQL 5.6+、PostgreSQL 9.4+、SQLite 3.8.8+、SQL Server 2017+。
Laravel的優(yōu)點(diǎn)
Laravel Homestead 是 Lavarel 官方預(yù)封裝的 Vagrant Box ,它為你提供了一個(gè)絕佳的開(kāi)發(fā)環(huán)境,而無(wú)需你在本地機(jī)器上安裝 PHP 、Web 服務(wù)器及任何其他服務(wù)器軟件。媽媽再也不用擔(dān)心弄亂你的操作系統(tǒng)了!
如果您是Mac用戶,還可以選擇使用Laravel Valet作為您的開(kāi)發(fā)環(huán)境,Laravel Valet支持Symfony、CakePHP 3、Slim和Zend以及WordPress等框架。
Laravel使用名為Blade的模板引擎。與其他模板引擎相比,它的一個(gè)優(yōu)勢(shì)是可以在Blade中使用PHP,而其他引擎無(wú)法使用PHP。
Packalyst是Laravel軟件包的集合,有15000多個(gè)軟件包可以在項(xiàng)目中使用。
Laravel提供了一系列安全功能和方法,包括以下內(nèi)容:
-
身份驗(yàn)證
-
授權(quán)
-
電子郵件驗(yàn)證
-
加密
-
散列
-
密碼重置
Laravel Eloquent ORM和流暢的查詢生成器 在使用PDO參數(shù)綁定時(shí)可以防止SQL注入攻擊。
默認(rèn)情況下,還啟用了跨站點(diǎn)請(qǐng)求偽造(CSRF)保護(hù),每當(dāng)您在應(yīng)用程序中定義 HTML 表單時(shí),都應(yīng)在表單中包含一個(gè)隱藏的 CSRF _token 字段。
Laravel的Artisan控制臺(tái)命令行工具允許開(kāi)發(fā)人員自動(dòng)執(zhí)行重復(fù)任務(wù)并快速生成框架代碼,從而加快了開(kāi)發(fā)速度。
如果您需要進(jìn)行PHP基準(zhǔn)測(cè)試,Laravel是您可選的PHP框架中速度最快的。
Laravel生態(tài)系統(tǒng)有幾個(gè)有用的工具,例如用于編譯CSS和JS資源的Mix,以及用于OAuth身份驗(yàn)證的Socialite。
Laravel受益于一個(gè)大型開(kāi)發(fā)人員社區(qū)(如WordPress)。
小編為您整理了一些社區(qū)地址:
-
Laracasts:包含課程、博客、播客和論壇的學(xué)習(xí)門(mén)戶
-
Laravel.io:一個(gè)擁有45000多名用戶的社區(qū)門(mén)戶。
-
The Laravel subreddit:一個(gè)擁有50000名Laravel工匠的社區(qū)門(mén)戶。
-
laravel視頻教程:
https://www.php.cn/course/list/23.html
-
laravel技術(shù)文章:
https://www.php.cn/phpkj/laravel/
課程推薦:
php中文網(wǎng)新上線的《Laravel 9 學(xué)習(xí)正當(dāng)時(shí)—保姆級(jí)教程,想學(xué)不會(huì)都難!》帶你領(lǐng)略專(zhuān)門(mén)為Web工匠打造的PHP框架最新版本 Laravel 9,讓你的代碼更像藝術(shù)家的作品!
(原價(jià)¥279元,限時(shí)折扣價(jià)¥166元,僅限1天)
本課程將從零開(kāi)始,帶你學(xué)會(huì)使用世界上最流行的PHP框架開(kāi)發(fā)任何項(xiàng)目,并為你節(jié)省大量開(kāi)發(fā)和維護(hù)時(shí)間,提升開(kāi)發(fā)效率!
開(kāi)通地址:
https://www.php.cn/course/1421.html
(長(zhǎng)按識(shí)別二維碼打開(kāi))
Symfony
Symfony既是一個(gè)PHP框架,也是一個(gè)用于構(gòu)建網(wǎng)站的PHP組件集合。
Symfony快速了解
發(fā)布日期:2005年10月
當(dāng)前版本:Symfony5.1.4
技術(shù)要求:
-
PHP>=7.2.5
-
支持Composer方式的安裝
Symfony的優(yōu)點(diǎn)
Symfony是需要可擴(kuò)展的網(wǎng)站和應(yīng)用程序的最佳選擇。它的模塊化組件系統(tǒng)非常靈活,可以讓您選擇多種項(xiàng)目所需的組件。
Symfony支持流行PHP框架中的大多數(shù)數(shù)據(jù)庫(kù):
-
Drizzle
-
MySQL
-
Oracle
-
PostgreSQL
-
SAP Sybase SQL Anywhere
-
SQLite
-
SQLServer
與數(shù)據(jù)庫(kù)交互的最佳方式是通過(guò) Doctrine ORM。
Symfony使用數(shù)據(jù)映射器將對(duì)象映射到數(shù)據(jù)庫(kù),這將使對(duì)象模型和數(shù)據(jù)庫(kù)模式保持分離,這意味著如果您需要更改數(shù)據(jù)表的某一列,無(wú)需在代碼庫(kù)中進(jìn)行多次更改。
使用內(nèi)置工具欄Debugging調(diào)試Symfony項(xiàng)目非常簡(jiǎn)單。
Symfony使用Twig模板引擎,該引擎易于學(xué)習(xí)、快速且安全。
Packagist列出了4000多個(gè)Symfony軟件包,可供您下載和使用。
Symfony擁有Sensio實(shí)驗(yàn)室的商業(yè)支持。這意味著與大多數(shù)其他PHP框架不同,Symfony擁有專(zhuān)業(yè)的支持團(tuán)隊(duì),它還有長(zhǎng)期的版本支持,支持期為3年。
CodeIgniter
CodeIgniter框架可以幫助您快速構(gòu)建web應(yīng)用程序,因?yàn)樗哂凶钚〉呐渲谩?/p>
CodeIgniter快速了解
發(fā)布日期:2006年2月
當(dāng)前版本:CodeIgniter4.0.3
技術(shù)要求:
-
PHP>=7.2
-
數(shù)據(jù)庫(kù)支持MySQL、PostgreSQL、SQLite3
CodeIgniter的優(yōu)點(diǎn)
CodeIgniter以其運(yùn)行速度著稱(chēng),它是我們?cè)赑HP基準(zhǔn)測(cè)試中嘗試的四個(gè)PHP框架中速度第二快的。
CodeIgniter框架的占用資源很?。?.2MB),您可以添加所需的組件。
CodeIgniter很靈活:它鼓勵(lì)使用MVC架構(gòu)進(jìn)行開(kāi)發(fā),但您也可以編寫(xiě)非MVC應(yīng)用程序。
該框架內(nèi)置了對(duì)CSRF和XSS攻擊的防御措施,以及上下文相關(guān)的轉(zhuǎn)義和內(nèi)容安全策略。
CodeIgniter支持多種緩存方法,以加快應(yīng)用程序的運(yùn)行速度。
如前所述,與其他框架相比,CodeIgniter具有簡(jiǎn)單的學(xué)習(xí)曲線,并且具有很強(qiáng)的可擴(kuò)展性。
CodeIgniter的社區(qū)由一個(gè)論壇和Slack組組成。
推薦教程:
《CI框架30分鐘極速入門(mén)》
https://www.php.cn/course/760.html
Zend Framework / Laminas Project
Zend框架是一個(gè)久負(fù)盛名的PHP框架,現(xiàn)在正在向Laminas Project過(guò)渡。
如果您的項(xiàng)目正在使用Zend, 小編強(qiáng)烈建議您將項(xiàng)目遷移到Laminas,因?yàn)閆end不再更新。
Laminas Project由3部分組成:
1. Laminas組件和MVC
2. Mezzio
3. Laminas API工具
Laminas 快速了解
發(fā)布日期:2006年2月
當(dāng)前版本:3.0.0 (Zend) or 1.3.0 (Laminas)
技術(shù)要求:
-
PHP>=5.6(Zend)或>=7.3(Laminas)
-
支持Composer方式的安裝
-
數(shù)據(jù)庫(kù)支持MariaDB、MySQL、Oracle、IBM DB2、Microsoft SQL Server、PostgreSQL、SQLite和Informix Dynamic Server
Laminas/Zend的優(yōu)點(diǎn)
Zend框架的下載量超過(guò)5.7億,它也是企業(yè)使用最多的PHP框架。Zend遵循PHP框架互操作組(PHP Framework Interop Group 簡(jiǎn)稱(chēng)為PHP-FIG)標(biāo)準(zhǔn),這意味著其代碼可以輕松地移植到其他框架。
與Symfony一樣,您可以使用所需的組件,您可以使用Zend構(gòu)建RESTful API。
Laminas社區(qū)有一個(gè)論壇和Slack組,用于開(kāi)發(fā)者協(xié)作和框架支持。
Yii (Framework)
這個(gè)框架的名字叫Yii,在漢語(yǔ)中的意思是“簡(jiǎn)單而進(jìn)化”。它還代表“Yes, It Is!”
Yii 快速了解
發(fā)布日期:2008年10月
當(dāng)前版本:Yii2.0.35
技術(shù)要求:
-
PHP>=5.4.0 推薦PHP7以上版本
-
支持Composer方式的安裝
-
數(shù)據(jù)庫(kù)支持SQLite、MySQL、PostgreSQL、MSSQL或Oracle
Yii 的優(yōu)點(diǎn)
你可以在幾分鐘內(nèi)快速上手。因?yàn)樗奈臋n編寫(xiě)良好,易于理解。
Yii框架有幾個(gè)安全措施,如bcrypt密碼哈希、加密、身份驗(yàn)證和授權(quán)。它的文檔中提供了防止SQL注入、XSS和CSRF攻擊的最佳實(shí)例,不容錯(cuò)過(guò)。
Gii代碼生成器可以快速為您構(gòu)建骨架代碼,節(jié)省開(kāi)發(fā)時(shí)間。
Yii支持四種類(lèi)型的緩存來(lái)加速web應(yīng)用程序:數(shù)據(jù)緩存、片段緩存、頁(yè)面緩存和HTTP緩存。
您可以在Yii項(xiàng)目中運(yùn)行第三方代碼。
Yii社區(qū)通過(guò)Slack或IRC提供在線實(shí)時(shí)支持。Yii的生態(tài)圈還包括一個(gè)討論論壇和社交媒體渠道。該社區(qū)向其活躍成員頒發(fā)名人堂徽章和參賽機(jī)會(huì)。
Yii框架視頻教程推薦:
https://www.php.cn/toutiao-362431.html
CakePHP
CakePHP是一個(gè)快速、干凈的PHP開(kāi)發(fā)框架。
CakePHP 快速了解
發(fā)布日期:2005年4月
當(dāng)前版本:CakePHP4.1.1
技術(shù)要求:
-
PHP>=7.2 推薦PHP7.4
-
支持Composer方式的安裝
-
數(shù)據(jù)庫(kù)支持MySQL 5.6+, MariaDB 5.6+, PostgreSQL 9.4+, SQLite 3.8, SQL Server 2012+
CakePHP的優(yōu)點(diǎn)
CakePHP配置最少、最容易上手,因?yàn)槟槐靥幚鞽ML或YAML文件。一旦完成了數(shù)據(jù)庫(kù)配置,就可以開(kāi)始愉快編碼了。
CakePHP有自己的內(nèi)置ORM,使用起來(lái)既快速又簡(jiǎn)單,它的安全特性包括加密、密碼哈希、表單數(shù)據(jù)保護(hù)和CSRF防御。
CakePHP的組件和助手函數(shù)簡(jiǎn)化了開(kāi)發(fā),減少了您必須執(zhí)行的普通任務(wù)的數(shù)量。
Github提供了一個(gè)有用的CakePHP資源和插件列表。
https://github.com/friendsofcake/awesome-cakephp
Slim
Slim是一個(gè)精簡(jiǎn)、靈活的微型PHP框架,由JoshLockhart創(chuàng)建。它關(guān)注于接收HTTP請(qǐng)求、調(diào)用回調(diào)和返回HTTP響應(yīng)。
Slim 快速了解
發(fā)布日期:2010年9月
當(dāng)前版本:Slim4.5.0
技術(shù)要求:
-
PHP>=7.2
-
具有URL重寫(xiě)的Web服務(wù)器
Slim的優(yōu)點(diǎn)
Slim的代碼庫(kù)很精簡(jiǎn),因?yàn)樗鼪](méi)有第三方依賴關(guān)系,因此,運(yùn)行速度非???。
Slim特別適合構(gòu)建小型應(yīng)用程序和程序接口,此外Slim還集成了第一方和第三方組件。
Slim很容易學(xué)習(xí)和理解。你可以在幾分鐘內(nèi)運(yùn)行一個(gè)“Hello World”應(yīng)用程序。Slim被Sland網(wǎng)站上的開(kāi)發(fā)人員評(píng)為最佳的PHP框架。
Tidelift提供對(duì)Slim的專(zhuān)業(yè)支持。
Phalcon
Phalcon是為提高速度而構(gòu)建的PHP框架,它最初是作為以Zephir和C編寫(xiě)的web服務(wù)器的擴(kuò)展而出現(xiàn)的,但是您不需要了解C。Phalcon可以使開(kāi)發(fā)人員使用由框架生成的PHP類(lèi)和命名空間。
Phalcon 快速了解
發(fā)布日期:2012年11月
當(dāng)前版本:Phalcon4.0.6
技術(shù)要求:
-
PHP>=7.2
-
PSR擴(kuò)展
Phalcon的優(yōu)點(diǎn)
Phalcon設(shè)計(jì)的初衷是使項(xiàng)目快速運(yùn)行,因?yàn)樗哂幸韵绿攸c(diǎn):
-
架構(gòu)簡(jiǎn)單。
-
Zephir、C擴(kuò)展和PHP的一次性加載。
-
代碼是編譯的,而不是解釋的,因此速度更快。
-
內(nèi)存常駐,意味著您可以隨時(shí)在需要時(shí)調(diào)用它。
-
與大多數(shù)其他PHP框架不同,Phalcon不使用文件讀取和文件統(tǒng)計(jì)信息,從而提高了性能。
由于Phalcon是松散耦合的,因此您可以創(chuàng)建自己的目錄結(jié)構(gòu),再者Phalcon底層代碼不存在于項(xiàng)目目錄中,這一點(diǎn)使得代碼變得很輕量級(jí)。
Phalcon的安全組件有助于密碼哈希和CSRF保護(hù),模板引擎Volt速度非常快,并且附帶了很多擴(kuò)展類(lèi)庫(kù),可以幫助您輕松創(chuàng)建視圖。
遇到任何問(wèn)題,您可以通過(guò)Phalcon的文檔、論壇、Discord chat、Stack Overflow和多個(gè)社交媒體平臺(tái)尋求解決方案與支持。
FuelPHP
FuelPHP是一個(gè)社區(qū)驅(qū)動(dòng)的PHP框架,由300多個(gè)貢獻(xiàn)者參與完成。
FuelPHP 快速了解
發(fā)布日期:2011年6月
當(dāng)前版本:FuelPHP1.8.2
技術(shù)要求:
-
PHP>=5.4
-
任何wed服務(wù)器
FuelPHP的優(yōu)點(diǎn)
FuelPHP也采用了MVC架構(gòu)模式,但也支持HMVC(Hierarchical Model View Controller),即在控制器和視圖之間添加另一層。
HMVC設(shè)計(jì)模式的優(yōu)點(diǎn)是:
-
更好的代碼組織
-
更大的模塊化
-
更具擴(kuò)展性
-
鼓勵(lì)代碼重用
您可以為您的項(xiàng)目選擇所需要的文件和文件夾結(jié)構(gòu),因?yàn)镕uelPHP在這方面的約束很少。
此外,F(xiàn)uelPHP非常重視安全性,具有以下特性:
-
輸出編碼
-
CSRF保護(hù)
-
輸入、URI和XSS過(guò)濾
-
用戶的輸入會(huì)被轉(zhuǎn)義后才參與組建SQL語(yǔ)句
FuelPHP有自己的命令行實(shí)用程序——oil,您可以用它來(lái)執(zhí)行任務(wù)、調(diào)試代碼和生成公共組件。
此外,F(xiàn)uelPHP的ORM功能很強(qiáng)大,但也很輕量級(jí)。您可以在FuelPHP論壇、Facebook和Twitter上加入FuelPHP社區(qū)。
Fat-Free-Framework
與Slim一樣,F(xiàn)at-Free-Framework(簡(jiǎn)稱(chēng)F3)也是一個(gè)微型框架,它的目標(biāo)是在高效的特性、框架簡(jiǎn)單性、易用性和速度之間達(dá)到平衡。
Fat-Free-Framework 快速了解
發(fā)布日期:2009
當(dāng)前版本:Fat-Free-Framework3.7.2
技術(shù)要求:
-
PHP>=5.4
-
數(shù)據(jù)庫(kù)支持MySQL、SQLite、MSSQL/Sybase、PostgreSQL和MongoDB。
Fat-Free-Framework的優(yōu)點(diǎn)
F3的代碼庫(kù)大約為65Kb,因此運(yùn)行速度很快,別看它很輕,F(xiàn)3仍然具備了您所期望的所有功能。您可以根據(jù)需要使用可選插件對(duì)框架進(jìn)行擴(kuò)展。
F3上手非常容易,開(kāi)箱即用,無(wú)需使用Composer、curl或依賴注入即可開(kāi)始使用,您可以在幾分鐘內(nèi)創(chuàng)建Hello World應(yīng)用程序。
F3所有的元素幾乎都是模塊化的,因此您可以只使用構(gòu)建web應(yīng)用程序所需的部分,F(xiàn)3默認(rèn)情況下不會(huì)添加您不需要的代碼,從而使您的應(yīng)用程序保持在最“干練”的狀態(tài)。
F3的文檔也很清晰易懂,并附有大量的示例演示。Fat-Free框架提供了模板引擎的選擇:您可以使用PHP、F3自己的模板引擎或其他模板引擎,如Smarty或Twig。
F3開(kāi)發(fā)人員一般在Slack和Fat-Free Framework Google Group上比較活躍。
七:對(duì)于初學(xué)者來(lái)說(shuō),哪種PHP框架最好?
對(duì)于初學(xué)者來(lái)說(shuō),起步階段最好選擇那些更簡(jiǎn)單、更適合國(guó)人的框架,比如ThinkPHP框架。
初學(xué)者掌握了簡(jiǎn)單的框架以后,你就可以進(jìn)入一個(gè)功能更加豐富的領(lǐng)域了,屆時(shí)再接觸復(fù)雜大型框架,比如laravel就比較得心應(yīng)手了,也不會(huì)澆滅學(xué)習(xí)的熱情。
那么您最喜歡哪種PHP框架,為什么?請(qǐng)?jiān)谙旅娴脑u(píng)論中告訴我們!
聲明:本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn核實(shí)處理。
推薦:PHP從基礎(chǔ)到實(shí)戰(zhàn)教程視頻
- 上一篇:29個(gè)Vue經(jīng)典面試題(附源碼級(jí)詳解)
- 下一篇:沒(méi)有了