Laravel 5.6 是繼 5.5 之后 Laravel 官方發(fā)布的最新版本。
在項(xiàng)目開發(fā)中,一些架構(gòu)和代碼都是重復(fù)的,為了避免重復(fù)勞動(dòng),于是各種各樣的框架誕生了。
在PHP開發(fā)中,選擇合適的框架有助于加快軟件開發(fā),節(jié)約寶貴的項(xiàng)目時(shí)間,讓開發(fā)者專注于功能的實(shí)現(xiàn)上。由于流行的框架經(jīng)過了大量項(xiàng)目的檢驗(yàn),所以使用框架還有助于創(chuàng)建更加穩(wěn)定和安全的應(yīng)用程序。本文搜集了目前全球最流行的PHP框架,歡迎大家交流學(xué)習(xí)。
1、Laravel
Laravel是一個(gè)簡單優(yōu)雅的PHPWeb開發(fā)框架,可以將開發(fā)者從意大利面條式的代碼中解放出來,通過簡單、高雅、表達(dá)式語法開發(fā)出很棒的Web應(yīng)用,Laravel擁有更富有表現(xiàn)力的語法、高質(zhì)量的文檔、豐富的擴(kuò)展包,被稱為“巨匠級(jí)PHP開發(fā)框架”。
Laravel 5.6 是繼 5.5 之后 Laravel 官方發(fā)布的最新版本。
2、Phalcon
Phalcon是一個(gè)開源的、全棧的、用C語言編寫的PHP5框架,為開發(fā)者提供了網(wǎng)站及應(yīng)用開發(fā)所需的大量高級(jí)工具,且Phalcon是松耦合的,開發(fā)者可以根據(jù)需要使用其他組件。Phalcon中的所有函數(shù)都以PHP類的方式呈現(xiàn),開發(fā)者無需學(xué)習(xí)和使用C語言,且無需擔(dān)心性能問題。
Phalcon框架的特點(diǎn)
首先總結(jié)下Phalcon框架的特點(diǎn),我總結(jié)了Phalcon框架如下特點(diǎn):
性能強(qiáng)悍。這個(gè)框架是用C語言寫的,以PHP擴(kuò)展的形式存在。性能沒得說,基本可以滿足任何需求和使用場(chǎng)景。鳥哥的yaf框架也是C語言寫的,性能跟Phalcon不相上下。但是yaf更新慢,而且是微框架,還是不能跟phalcon相比。其他PHP框架,諸如laravel,thinkphp,yii2,就更不能跟這兩個(gè)框架比了,性能完全秒殺,不在一個(gè)層面。
高度解耦。因?yàn)镻halcon是以PHP擴(kuò)展的形式存在,所以框架本身天然跟項(xiàng)目解耦和了。框架內(nèi)部,也十分注重解耦和。
面向?qū)ο蠛驮O(shè)計(jì)模式良好支持。Phalcon是烏克蘭大神扎克洛夫開發(fā)的,作者的面向?qū)ο蠛驮O(shè)計(jì)模式學(xué)得非常好。你可以通過Phalcon框架來實(shí)現(xiàn)任何設(shè)計(jì)模式,提高各種項(xiàng)目的開發(fā)效率,包括時(shí)下很火的微服務(wù)。
社區(qū)成熟。devtools開發(fā)工具、多語言開發(fā)文檔、示例代碼和教程、多模塊的開源項(xiàng)目,一應(yīng)俱全。除了上手略難,其他都非常成熟。
3、Symfony2
Symfony2是一個(gè)開源的PHPWeb框架,有著開發(fā)速度快、性能高等特點(diǎn)。與其他框架相比,Symfony2的優(yōu)勢(shì)包括:支持DI(依賴注入)和IoC(控制反轉(zhuǎn));擴(kuò)展性強(qiáng);文檔和社區(qū)比較成熟。但是Symfony2的學(xué)習(xí)曲線也比較陡峭,沒有經(jīng)驗(yàn)的初學(xué)者往往需要一些練習(xí)才能掌握其特性。
Symfony2是一個(gè)基于PHP語言的Web開發(fā)框架,有著開發(fā)速度快、性能高等特點(diǎn)。但Symfony2的學(xué)習(xí)曲線也比較陡峭,沒有經(jīng)驗(yàn)的初學(xué)者往往需要一些練習(xí)才能掌握其特性。
本文通過一個(gè)快速開發(fā)尋人平臺(tái)的實(shí)例向讀者介紹Symfony2框架的一些核心功能和特點(diǎn)。通過閱讀本文,你可以通過一些具體的例子了解Symfony2框架的優(yōu)秀特性和技術(shù)特點(diǎn),從而體會(huì)到使用Symfony2框架支持快速網(wǎng)站開發(fā)這一優(yōu)勢(shì)。
適合人群
本文適用于希望提高PHP語言的開發(fā)技術(shù),或者對(duì)Symfony2框架有興趣的讀者。
本文也適用于系統(tǒng)架構(gòu)師和各類技術(shù)決策者。
4、CodeIgniter
CodeIgniter是一個(gè)簡單快速的PHPMVC框架。CodeIgniter不需要大量代碼(1.6.2版本僅為2.8MB,其中的1.3MB是可以刪除的用戶文檔),也不會(huì)要求您插入類似于PEAR的龐大的庫。它在PHP4和PHP5中表現(xiàn)同樣良好,允許您創(chuàng)建可移植的應(yīng)用程序。最后,您不必使用模板引擎來創(chuàng)建視圖—只需沿用舊式的HTML和PHP即可。CodeIgniter入門非常容易,而且有很全面的中文版用戶開發(fā)手冊(cè),在官方網(wǎng)站上可以了解到更多內(nèi)容。
從圖中我們 看到,index.php作為唯一的入口文件,會(huì)初始化CI框架運(yùn)行所需的基本資源。
路由器(Routing)會(huì)根據(jù)http請(qǐng)求,確定如何處理;
如果存在緩存文件(cache),會(huì)直接返回給瀏覽器,不用走下面的系統(tǒng)流程;
在加載應(yīng)用程序控制器(application controller)之前,會(huì)對(duì)http請(qǐng)求和用戶請(qǐng)求數(shù)據(jù)進(jìn)行必要的安全檢查。
控制器會(huì)加載模型,核心類庫,輔助函數(shù),需要用到的插件等請(qǐng)求所需要的資源。
最后一步,渲染視圖(viewer)并返回給瀏覽器,如果開啟了緩存,會(huì)將視圖先緩存起來,以用于以后的請(qǐng)求。
5、Yii
Yii是一個(gè)基于組件的高性能PHP框架,用于開發(fā)大型Web應(yīng)用。Yii采用嚴(yán)格的OOP編寫,并有著完善的庫引用以及全面的教程。從MVC,DAO/ActiveRecord,widgets,caching,等級(jí)式RBAC,Web服務(wù),到主題化,I18N和L10N,Yii提供了今日Web2.0應(yīng)用開發(fā)所需要的幾乎一切功能。事實(shí)上,Yii是最有效率的PHP框架之一。Yii是一個(gè)高性能的PHP5的web應(yīng)用程序開發(fā)框架。通過一個(gè)簡單的命令行工具yiic可以快速創(chuàng)建一個(gè)web應(yīng)用程序的代碼框架,開發(fā)者可以在生成的代碼框架基礎(chǔ)上添加業(yè)務(wù)邏輯,以快速完成應(yīng)用程序的開發(fā)。
Yii 是一個(gè) 高性能 的,適用于開發(fā) WEB 2.0 應(yīng)用的 PHP 框架。
Yii 自帶了 豐富的功能,包括 MVC,DAO/ActiveRecord,I18N/L10N,緩存,身份驗(yàn)證和基于角色的訪問控制,腳手架,測(cè)試等,可顯著縮短開發(fā)時(shí)間。
2.0.15 版發(fā)布于 2018-03-20?1.1.20 版發(fā)布于 2018-07-06
快速
Yii 僅加載您需要的功能,具有強(qiáng)大的緩存支持,通過盡可能少的開銷提供最大化的功能。
安全
Yii 的標(biāo)準(zhǔn)是安全的,健全的默認(rèn)設(shè)置和內(nèi)置工具可幫助您編寫更加穩(wěn)定和安全的代碼。
專業(yè)
Yii 使用簡單但功能強(qiáng)大的 API 和代碼生成功能,讓您在更短的時(shí)間內(nèi)編寫更多代碼。
6、Aura
Aura為PHP5.4及以上版本提供獨(dú)立的類庫,它的代碼非常干凈,并且真正獨(dú)立。這些包可以單獨(dú)使用,也可以將它們合并到開發(fā)者自己的框架中。國內(nèi)資料非常少。
如果你喜歡用簡潔的代碼創(chuàng)建應(yīng)用程序,那么你可以選擇使用Aura,Aura也有相當(dāng)大的一部分用戶,使用方法和CakePHP類似,Aura的主要目標(biāo)是為PHP開發(fā)者提供一個(gè)高質(zhì)量、可測(cè)試、標(biāo)準(zhǔn)化組件的框架。
7、Cakephp
CakePHP是一個(gè)運(yùn)用了諸如ActiveRecord、AssociationDataMapping、FrontController和MVC等著名設(shè)計(jì)模式的快速開發(fā)框架。該項(xiàng)目主要目標(biāo)是提供一個(gè)可以讓各種層次的PHP開發(fā)人員快速地開發(fā)出健壯的Web應(yīng)用,而又不失靈活性。CakePHP是一個(gè)基于PHP,免費(fèi)且開源的迅速發(fā)展框架最開始從RubyOnRails框架里得到靈感。CakePHP擁有一個(gè)活躍的開發(fā)團(tuán)隊(duì)以及社區(qū),使CakePHP本身更具備應(yīng)有的價(jià)值。另外,使用CakePHP也意味著您的應(yīng)用程序?qū)⒏菀椎販y(cè)試以及更容易地被改良、更新。
優(yōu)點(diǎn)
1.設(shè)計(jì)層面很優(yōu)雅,沒有自帶多余的 library,所有的功能都是純粹的框架,執(zhí)行效率還不錯(cuò);
2.數(shù)據(jù)庫層的 hasOne、 hasMany 功能很強(qiáng)大,對(duì)于復(fù)雜業(yè)務(wù)處理比較合適,;
3.路由功能,配置功能還不錯(cuò);
4.自動(dòng)構(gòu)建腳手架(scaffold)很強(qiáng)大;
5.基本實(shí)現(xiàn)過了MVC每一層;具有自動(dòng)操作命令行腳本功能;
6.文檔比較全,學(xué)習(xí)成本中等。
缺點(diǎn)
1.CakePHP非常嚴(yán)重的問題是把Model理解為數(shù)據(jù)庫層操作,嚴(yán)重影響了除了數(shù)據(jù)庫之外的操作能力;
2.CakePHP的cache功能略顯薄弱,配置功能稍嫌弱;
3.CakePHP不適合大型應(yīng)用,只適合中型應(yīng)用,小型應(yīng)用來說略微的學(xué)習(xí)成本高了點(diǎn)。
8、Zend
由最流行最專業(yè)的PHPIDE產(chǎn)品ZendStudio的開發(fā)商開發(fā),ZendFramework(簡寫ZF)是開源的,主要用于Web應(yīng)用程序的開發(fā)和服務(wù),ZF采用MVC(Model–View-Controller)架構(gòu)模式來分離應(yīng)用程序中不同的部分方便程序的開發(fā)和維護(hù)。
ZendFramework是現(xiàn)有框架中最為笨重的,但功能強(qiáng)大,是目前PHP的官方框架。為了在學(xué)習(xí)框架的時(shí)候,更加深入地掌握框架的設(shè)計(jì)思路、設(shè)計(jì)模式及PHP開發(fā)技巧,首先對(duì)ZF框架進(jìn)行深入剖析和應(yīng)用。
提到框架,我們就不得不提MVC,Model(模型)->Viev(視圖)->Controller(控制器),View應(yīng)該是最容易理解的,可以說就是展示給用戶的頁面,這也是美工負(fù)責(zé)的部分。那Model和Controller具體指什么呢。在網(wǎng)頁上,我們可以用圖片拼接組成一個(gè)View,但是具體的顯示內(nèi)容(數(shù)據(jù))我們是需要從后臺(tái)中獲取的,后臺(tái)取自哪里呢,首先我們肯定想到的是數(shù)據(jù)庫,就是保存在數(shù)據(jù)庫里的東西,這樣也就通了,Model即為數(shù)據(jù)庫的數(shù)據(jù)表,也可以理解為數(shù)據(jù)池。Controller需要做的是什么呢,有了數(shù)據(jù),有了頁面,那具體在頁面的什么位置顯示什么信息就需要控制器來幫忙了。所以控制器也就可以理解為模型和視圖之間的溝通橋梁,從Model中獲取數(shù)據(jù)顯示在View的相應(yīng)位置,獲取頁面(View)用戶操作信息,反饋給Model,作數(shù)據(jù)更新。
通過上面的描述,相信大家對(duì)MVC有了直觀的理解,從這里,我們也理解了框架存在的意義。若不采用框架,我們通常會(huì)將數(shù)據(jù)、頁面相關(guān)的代碼揉合在一起,在對(duì)于小的程序或者單獨(dú)個(gè)人開發(fā)時(shí),或許不是很大的問題,但是項(xiàng)目較大或者需要大型團(tuán)隊(duì)相互合作時(shí),這樣的編寫方式就存在很大的問題,并且后期維護(hù)相當(dāng)困難??蚣艿腗VC思想,將數(shù)據(jù)、頁面及控制過程中分隔開,相互之間通過接口連接。這樣多個(gè)模塊之間除了接口有關(guān)聯(lián)外,沒有其他關(guān)系,便于同時(shí)分工操作及后期維護(hù)。
9、Kohana
Kohana是一款純PHP5的框架,基于MVC模式開發(fā),它的特點(diǎn)就是高安全性,輕量級(jí)代碼,容易使用。
在我看來,學(xué)會(huì)使用Kohana需要理解和熟悉的主要分為四部分:1,Model View Controller;2,Cascading Filesystem;3,Request Flow;4,Routing。
10、FuelPHP
FuelPHP是一個(gè)簡單的、靈活的、社區(qū)驅(qū)動(dòng)的PHP5.3web框架。它的誕生源自于很多開發(fā)社區(qū)對(duì)于現(xiàn)有開發(fā)框架的不滿,F(xiàn)uelPHP非常便攜,幾乎所有的服務(wù)器都能夠很好的支持,并且簡潔強(qiáng)大的語法也能夠讓你很快喜歡上它。
瀏覽了一下這個(gè)框架的介紹,基本上和其他主流PHP框架大同小異、包括MVC、可配置的路由(Route)、支持多模塊(Modules)、支持命令行任務(wù)(Task)、數(shù)據(jù)庫遷移(Migrations)等。
下面是Fuel的核心類:
Agent | 瀏覽器 |
Arr | 數(shù)組工具類 |
Asset | 靜態(tài)資源工具類 |
Autoloader | 自動(dòng)加載 |
Cache | |
Cli | |
Config | |
Cookie | |
Crypt | 加密 |
Database | |
Date | |
Debug | |
Event | 事件,有點(diǎn)類似js里面的event,但是feul里面的event是手動(dòng)觸發(fā)的 |
Fieldset | |
File | |
Form | |
Format | |
Ftp | |
Fuel | fuel框架自身的信息 |
Html | |
Image | |
Inflector | 命名轉(zhuǎn)換(把hello world變成HelloWorld之類的) |
Input | |
Lang | |
Log | |
Migrate | 見上面Migrations |
Mongo_Db | |
Pagination | 分頁 |
Redis | |
Request | |
Response | |
Security | 安全,主要是對(duì)CSRF的處理 |
Session | 不完全是php自帶的session,feul里可以自行封裝session |
Str | 字符串工具類 |
Upload | 上傳 |
Uri | 創(chuàng)建url |
Validation | 校驗(yàn) |
View |
Feul還包括幾個(gè)包(package)
oil | feul自身的命令行工具,可以用于自動(dòng)化生產(chǎn)代碼、幫助測(cè)試和運(yùn)行task |
auth | 認(rèn)證 |
orm |
11、Slim
Slim是一款PHP微框架,可以幫助你快速編寫簡單但功能強(qiáng)大的web應(yīng)用和API。
特性
強(qiáng)大的HTTP URL 路由
配置簡單
自定義視圖
支持AES-256加密cookies
HTTP緩存
可定制的日志記錄
錯(cuò)誤處理
可擴(kuò)展的中間層和hook架構(gòu)
錯(cuò)誤處理和調(diào)試
12、Typo3
Typo3內(nèi)容管理系統(tǒng),是基于PHP4/PHP5+MYsql的內(nèi)容管理系統(tǒng)(框架)(CMS/CMF),兼容PHP4和PHP5.數(shù)據(jù)庫系統(tǒng)除Mysql之外,也能運(yùn)行于Oracle,MS-SQL,ODBC,LDAP等其它數(shù)據(jù)庫系統(tǒng),支持Typo3的服務(wù)器系統(tǒng):Apache或者IIS架設(shè)的服務(wù)器。
13、ThinkPHP
ThinkPHP是為了簡化企業(yè)級(jí)應(yīng)用開發(fā)和敏捷WEB應(yīng)用開發(fā)而誕生的。最早誕生于2006年初,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協(xié)議發(fā)布。ThinkPHP從誕生以來一直秉承簡潔實(shí)用的設(shè)計(jì)原則,在保持出色的性能和至簡的代碼的同時(shí),也注重易用性。并且擁有眾多原創(chuàng)功能和特性,在社區(qū)團(tuán)隊(duì)的積極參與下,在易用性、擴(kuò)展性和性能方面不斷優(yōu)化和改進(jìn)。ThinkPHP是一個(gè)快速、兼容而且簡單的輕量級(jí)國產(chǎn)PHP開發(fā)框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協(xié)議發(fā)布,從Struts結(jié)構(gòu)移植過來并做了改進(jìn)和完善,同時(shí)也借鑒了國外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的思想和TagLib(標(biāo)簽庫)、RoR的ORM映射和ActiveRecord模式。
14、Flight
Flight是一個(gè)快速、簡單、可擴(kuò)展的微型PHP框架,允許用戶快速的構(gòu)建RestfulWeb應(yīng)用程序,同樣易于學(xué)習(xí)和使用,簡單但是很強(qiáng)大!
15、PHPixie
PHPixie是一個(gè)輕量級(jí)的MVCPHP框架,設(shè)計(jì)用于快速開發(fā),易于學(xué)習(xí),并提供一個(gè)堅(jiān)實(shí)的基礎(chǔ)開發(fā)框架。
16、Yaf
Yaf,全稱YetAnotherFramework,是一個(gè)C語言編寫的PHP框架,是一個(gè)以PHP擴(kuò)展形式提供的PHP開發(fā)框架,相比于一般的PHP框架,它更快,更輕便.它提供了Bootstrap,路由,分發(fā),視圖,插件,是一個(gè)全功能的PHP框架。最新版本為2014-10-22發(fā)布的2.3.3。
17、Swoole
Swoole是一種PHP高級(jí)Web開發(fā)框架,框架不是為了提升網(wǎng)站的性能,是為了提升網(wǎng)站的開發(fā)效率。最少的性能損耗,換取最大的開發(fā)效率。利用Swoole框架,開發(fā)一個(gè)復(fù)雜的Web功能,可以在很短的時(shí)間內(nèi)完成。
18、Nette
Nette框架可以讓您更有效地工作,專注于重要的內(nèi)容,并使您的代碼更加可讀和結(jié)構(gòu)化。
19、Drupal
Drupal是使用PHP語言編寫的開源內(nèi)容管理框架(CMF),它由內(nèi)容管理系統(tǒng)(CMS)和PHP開發(fā)框架(Framework)共同構(gòu)成。連續(xù)多年榮獲全球最佳CMS大獎(jiǎng),是基于PHP語言最著名的WEB應(yīng)用程序。截止2011年底,共有13,802位WEB專家參加了Drupal的開發(fā)工作;228個(gè)國家使用181種語言的729,791位網(wǎng)站設(shè)計(jì)工作者使用Drupal。著名案例包括:聯(lián)合國、美國白宮、美國商務(wù)部、紐約時(shí)報(bào)、華納、迪斯尼、聯(lián)邦快遞、索尼、美國哈佛大學(xué)、Ubuntu等。
20、Workerman
Workerman是一款純PHP開發(fā)的開源高性能的PHPsocket服務(wù)器框架。被廣泛的用于手機(jī)app、移動(dòng)通訊,微信小程序,手游服務(wù)端、網(wǎng)絡(luò)游戲、PHP聊天室、硬件通訊、智能家居、車聯(lián)網(wǎng)、物聯(lián)網(wǎng)等領(lǐng)域的開發(fā)。支持TCP長連接,支持Websocket、HTTP等協(xié)議,支持自定義協(xié)議。擁有異步Mysql、異步Redis、異步Http、異步消息隊(duì)列等眾多高性能組件。
21、PHPDevShell
PHPDevShell是一個(gè)開源(GNU/LGPL)的快速應(yīng)用開發(fā)框架,用于開發(fā)不含Java的純PHP。它有一個(gè)完整的GUI管理員后臺(tái)界面。其主要目標(biāo)在于開發(fā)插件一類的基于管理的應(yīng)用,其中速度、安全、穩(wěn)定性及彈性是最優(yōu)先考慮的重點(diǎn)。其設(shè)計(jì)形成了一個(gè)簡單的學(xué)習(xí)曲線,PHP開發(fā)者無需學(xué)習(xí)復(fù)雜的新術(shù)語。PHPDevShell的到來滿足了開發(fā)者們對(duì)于一個(gè)輕量級(jí)但是功能完善,可以無限制的進(jìn)行配置的GUI的需求。
22、Akelos
AkelosPHP框架是一個(gè)基于MVC設(shè)計(jì)模式的web應(yīng)用開發(fā)平臺(tái)?;诹己玫氖褂昧?xí)慣,使用它可以完成如下任務(wù):◆方便的使用Ajax編寫views;◆通過控制器管理請(qǐng)求(request)及響應(yīng)(response);◆管理國際化的應(yīng)用;◆使用簡單的協(xié)議與模型及數(shù)據(jù)庫通信
你的Akelos應(yīng)用可以在大多數(shù)共享主機(jī)服務(wù)供應(yīng)方上運(yùn)行,因?yàn)锳kelos對(duì)服務(wù)器唯一的要求就是支持PHP。因此,AkelosPHP框架是理想的用于發(fā)布單獨(dú)web應(yīng)用的框架,因?yàn)樗恍枰菢?biāo)準(zhǔn)PHP配置便能運(yùn)行。
23、Prado
PRADO團(tuán)隊(duì)由一些PRADO狂熱者組成,這些成員開發(fā)并推動(dòng)PRADO框架以及相關(guān)項(xiàng)目的進(jìn)行。
PRADO的靈感起源于ApacheTapestry。從04年開始,PRADO成為SourceForge上的開源項(xiàng)目之一。這個(gè)項(xiàng)目目前進(jìn)展到了3.x版本。
24、ZooP
ZoopPHP框架,意為Zoop面向?qū)ο蟮腜HP框架。這是個(gè)穩(wěn)定,可伸縮并可移植的框架。從誕生到現(xiàn)在的5年間,已經(jīng)在不少產(chǎn)品開發(fā)中被使用。Zoop是一個(gè)快速,有效并干凈的框架。它的伸縮性很好,你可以只安裝你需要的功能。對(duì)代碼并不很熟悉的開發(fā)者也可以通過Zoop快速的開發(fā)安全的web應(yīng)用。熟練的開發(fā)者則可以更加將Zoop的彈性利用到極致
25、QPHP
QPHP,意為快速PHP,它是一個(gè)與ASP.NET類似的MVC框架?;旧纤沁@樣一個(gè)情況:◆整合了Java和C#的美感;◆除去了在其他PHP框架中使用的Perl形式的意義含糊的語言;◆大量基于OOP的概念
最后說一句,PHP是世界上最好的語言!
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇