⑴ php開發框架的流行的PHP開發框架
近幾年來,隨著PHP作為一門被許多開發者選作他們的腳本語言而不斷演化,PHP開發框架如雨後春筍般走上熒屏。人們總是在爭吵到底哪個PHP開發框架最好,但不是每個框架都是為所有人而產生的,這本來是很簡單的事實。這里列舉五個最好的最受歡迎的PHP開發框架: Codelgniter 以它的簡單易用,性能和速度而聞名。與 Symphony 不同,這款PHP開發框架對於共享主機的用戶而言很理想,如果你想有一個小型覆蓋面的框架。它提供了簡單的解決方案,還有擴展的知識庫,通過視頻教程,用戶指南和wiki來提供支持。
初學者應當考慮CodeIgniter。 Seagull 是一個良好的PHP開發框架,可以用來開發Web,命令行和GUI程序。這是一款無論對初學者還是職業程序員而言都及其簡單的開發框架。對於初學者,Seagull提供一套包含樣常式序的庫,經過簡單修改就能符合你的要求,而對於專家級程序員,Seagull提供了一整套設置選項——包括最佳練習,標準的和模塊化的代碼庫——來快速簡單地構建Web程序。Seagull有一個活躍的用戶社區以及豐富的支持文檔。
總結PHP開發框架對於各種能力層級的開發者都是一種減少重復編碼需要的良好方式,同時加快開發過程,確保創建Web程序時寫了正確的代碼。這不僅加速了復雜程序的開發,同時也減少了你代碼中的安全漏洞從而加強了PHP的安全性。
盡管一些專家級PHP程序員感覺沒必要使用開發框架開發Web程序,它們在快速軟體開發中仍然有巨大優勢,比如在緊迫的期限下。而對於初學者或中等開發者,開發框架能夠提高PHP學習效率同時促進練習編寫高質量的代碼且減少低質量代碼,後者因為PHP自身的「寬松」特性而常常出現。
今天有許多可以使用的PHP開發框架,因此開發者肯定能找到一款滿足他們在特性,支持,速度,可測度性等等方面的需求的框架。如今被開發者使用的頂級PHP開發框架包括:The Zend Framework,CakePHP,Symfony,Codelgniter和Seagull。 ThinkPHP是一個開源的PHP框架, 是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。最早誕生於2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,並且遵循Apache2開源協議發布。早期的思想架構來源於Struts,後來經過不斷改進和完善,同時也借鑒了國外很多優秀的框架和模式,使用面向對象的開發結構和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式,封裝了CURD和一些常用操作,單一入口模式等,在模版引擎、緩存機制、認證機制和擴展性方面均有獨特的表現,也已經越來越多地受到國內PHP開發人員的認可。
使用ThinkPHP,你可以更方便和快捷的開發和部署應用,當然不僅僅是企業級應用,任何PHP應用開發都可以從ThinkPHP的簡單、兼容和快速的特性中受益。簡潔、快速和實用是ThinkPHP發展秉承的宗旨,
作為一個整體開發解決方案,ThinkPHP能夠解決應用開發中的大多數需要,因為其自身包含了底層架構、兼容處理、基類庫、資料庫訪問層、模板引擎、緩存機制、插件機制、角色認證、表單處理等常用的組件,並且對於跨版本、跨平台和跨資料庫移植都比較方便。並且每個組件都是精心設計和完善的,應用開發過程僅僅需要關注您的業務邏輯。 KYPHP是一個中國開源的PHP框架,kyphp嚴格尊守OOP和MVC的理念,具有控制項化、可擴展性強。kyphp設計理念是自由、簡單。既可以用php源碼編程,也可以使用標簽,支持多語言,多資料庫,多皮膚,多模型部署等。
⑵ 頂級PHP開發框架
外國是有專門網站進行評測和跟蹤的
以下為十個目前最流行的基於MVC設計模式的PHP框架。
1. Yii
Yii是一個基於組件的高性能的PHP的框架,用於開發大規模Web應用。Yii採用嚴格的OOP編寫,並有著完善的庫引用以及全面的教程。從MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務,到主體化,I18N和L10N,Yii提供了今日Web 2.0應用開發所需要的幾乎一切功能。而且這個框架的價格也並不太高。事實上,Yii是最有效率的PHP框架之一。
2. CodeIgniter
CodeIgniter是一個應用開發框架——一個為建立PHP網站的人們所設計的工具包。其目標在於快速的開發項目:它提供了豐富的庫組以完成常見的任務,以及簡單的界面,富有條理性的架構來訪問這些庫。使用CodeIgniter開發可以往項目中注入更多的創造力,因為它節省了大量編碼的時間。
3. CakePHP
CakePHP是一個快速開發PHP的框架,其中使用了一些常見的設計模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目標在於提供一個令任意水平的PHP開發人員都能夠快速開發web應用的框架,而且這個快速的實現並沒有犧牲項目的彈性。
4. PHPDevShell
PHPDevShell是一個開源(GNU/LGPL)的快速應用開發框架,用於開發不含Javascript的純PHP。它有一個完整的GUI管理員後台界面。其主要目標在於開發插件一類的基於管理的應用,其中速度、安全、穩定性及彈性是最優先考慮的重點。其設計形成了一個簡單的學習曲線,PHP開發者無需學習復雜的新術語。PHPDevShell的到來滿足了開發者們對於一個輕量級但是功能完善,可以無限制的進行配置的GUI的需求。
5. Akelos
Akelos PHP框架是一個基於MVC設計模式的web應用開發平台。基於良好的使用習慣,使用它可以完成如下任務:
◆方便的使用Ajax編寫views
◆通過控制器管理請求(request)及響應(response)
◆管理國際化的應用
◆使用簡單的協議與模型及資料庫通信
你的Akelos應用可以在大多數共享主機服務供應方上運行,因為Akelos對伺服器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用於發布單獨web應用的框架,因為它不需要非標准PHP配置便能運行。
6. Symfony
Symfony是一個用於開發PHP5項目的web應用框架。
這個框架的目的在於加速web應用的開發以及維護,減少重復的編碼工作。
Symfony的系統需求不高,可以被輕易的安裝在任意設置上:你只需一個Unix或Windows,搭配一個安裝了PHP5的網路伺服器即可。它與差不多所有的資料庫兼容。Symfony的價位不高,相比主機上的花銷要低得多。
對於PHP開發者而言,使用Symfony是一件很自然的事,其學習曲線只有短短一天。干凈的設計以及代碼可讀性將縮短開發時間。開發者可以將敏捷開發的原理(如DRY,KISS或XP等)應用在其中,將重點放在應用邏輯層面上,而不用花費大量時間在編寫沒完沒了的XML配置文件上。
Symfony旨在建立企業級的完善應用程序。也就是說,你擁有整個設置的控制權:從路徑結構到外部庫,幾乎一切都可以自定義。為了符合企業的開發條例,Symfony還綁定了一些額外的工具,以便於項目的測試,調試以及歸檔。
7. Prado
PRADO團隊由一些PRADO狂熱者組成,這些成員開發並推動PRADO框架以及相關項目的進行。
PRADO的靈感起源於Apache Tapestry。從04年開始,PRADO成為SourceForge上的開源項目之一。這個項目目前進展到了3.x版本。
8. Zend
作為PHP藝術及精神的延伸,Zend框架的基礎在於簡單,面向對象的最佳方法,方便企業的許可協議,以及經過反復測試的快速代碼庫。Zend框架旨在建造更安全,更可靠的Web 2.0應用及web服務,並不斷從前沿廠商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那裡吸收精華。
9. ZooP
Zoop PHP框架,意為Zoop面向對象的PHP框架。
這是個穩定,可伸縮並可移植的框架。從誕生到現在的5年間,已經在不少產品開發中被使用。Zoop是一個快速,有效並干凈的框架。它的伸縮性很好,你可以只安裝你需要的功能。
對代碼並不很熟悉的開發者也可以通過Zoop快速的開發安全的web應用。熟練的開發者則可以更加將Zoop的彈性利用到極致。
Zoop建議將display,logic以及數據層(MVC)分開使用。
Zoop由很多組件和項目集合而成,其中包括smarty和prototype AJAX框架,PEAR模塊等。高效的核心組件提供了很多你原本需要自己編碼來實現的功能。Zoop內置的糾錯功能可以通過配置實現生產環境下的錯誤日誌生成,這個錯誤日誌提供了很多信息,可讀性很高,可以更輕易的尋找並排除錯誤。
Zoop的一個特別之處在於其GuiControls,在PHP中是一個相當革新的想法。它提供了很多form widgets與驗證完整的集合到一起,並形成了一個可以輕松打造個性化GuiControls的框架。
10. QPHP
QPHP,意為快速PHP,它是一個與ASP.NET類似的MVC框架。基本上它是這樣一個情況:
◆整合了Java和C#的美感
◆除去了在其他PHP框架中使用的Perl形式的意義含糊的語言
◆大量基於OOP的概念
⑶ php中,哪個框架比較好用是CI,TP,Zend,還是YII
所有框架中最神奇的、開發最迅速的是ruby on rails,號稱比別的框架快4倍,所言非虛,因為rails有自動代碼生成器功能,創建一個模型,自動給你搭好CURD操作。後來的很多框架,包括django(python),lavarel(php),cakephp(php)都是模仿rails,但都不如rails,主要原因在於ruby語言本身的簡潔與優美,讀rails的代碼感覺特別舒服,特別精練,一點不繞(很少有php框架中常見的大段檢測、對比、if判斷代碼),而其它語言的框架都達不到這點
目前最活躍的框架是thinkphp、CI、YII社區也還可以,其餘的社區人氣很差,沒法考慮,尤其是rails,在中國人氣非常之低,配置與啟動需用命令行,win系統不能很好兼容,問題都找不到答案,最終不得不舍棄。
從人氣與文檔詳細上,最終勝出的是tp,ci,YII,ZEND至今連個中文手冊都沒有,直接pass,不管它號稱多麼強大,連個中文社區與文檔都沒有,出了問題還要翻牆看英文,太痛苦了
在TP、YII、CI三者的角逐中,YII同樣有命令行(有命令行的一律減分),有自動生成器功能,但是有個巨大缺點:生成出很多不用的空文件夾,導致文件結構非常混亂,控制器文件、模型文件夾四處都有,不知道哪個跟哪個,而且YII的函數比較碎片化,語法不夠清晰也不好懂,最終PASS
TP是國產的,如果CI給80分,TP也可以給75分,兩者很接近,tp社區人氣很活躍,有什麼問題網路一搜就出來了,開源代碼也非常多,類庫集成度跟CI不相上下,差就差在文件結構上稍遜CI一些,語法易懂性也比CI稍差
⑷ 哪個PHP 框架比較好
Symfony是一套可重復使用的PHP組件,它允許開發者人員創建可擴展的,高效能的應用程序。它有30個組件可以選擇,開發人員可以有足夠的自由在RAD環境下進行試驗和工作。Symfony
API還允許使用第三方應用來方便集成,它可以與流行的前端框架,例如AngularJS一起使用。
很多流行的項目,包括Drupal和phpBB,都使用了Symfony框架。事實上,Laravel這個最流行的PHP框架是由Symfon建立的。
⑸ PHP框架的PHP框架TOP10
排名前 10 並且最受歡迎的 PHP 框架(排名不分先後)。
Laravel
這款可能是現在最受歡迎的 PHP 框架,Laravel 非常強大,而且很高雅,易於學習和使用。非常值得一試!
Flight
Flight 是一個快速,簡單,可擴展的微型 PHP 框架,允許用戶快速的構建 RESTful web 應用,同樣易於學習和使用,簡單但是很強大!
Yii
Yii 是個高性能的 PHP 框架,用來開發 Web 2.0 應用程序,Yii 擁有很豐富的特性: MVC,DAO/ActiveRecord ,I8N/L10N,緩存,身份認證,基於用戶角色的訪問控制,scaffolding和測試等等。
Medoo
Medoo 是最輕的 PHP 資料庫,只包括了一個10,9kb 的文件,一個很強大的適用於簡單的 web 小應用開發的微型框架。
PHPixie
這個框架源於 Kohana 框架,是我最喜歡的框架了:兼容 MVC,能快速掌握,強大,你也應該試一試!
CodeIgniter
雖然是個比較老的框架,也快被淘汰了,但是我還是很喜歡這個強大的 MVC 框架 CI,無數次在我的項目中使用它,從來也沒對它失去信心,依然是我不變的選擇!
Kohana
Kohana 是個開源的,面向對象的 MVC web 框架,是使用 PHP5 來構建的。這個框架是由一群志願者隊伍開發的,他們致力於迅速,安全和小。
Symfony
這個框架是在 2005 年創建,是個非常強大的 MVC 框架,在企業界是非常受歡迎的。Symfony 是收到眾多的 web 應用框架啟發的:Ruby on Rails,Django 和 Spring ,它可能是最完整的 PHP 框架了。
Pop PHP
很多 PHP 框架很漂亮也很復雜,Pop 的建立是考慮到所有經驗層次的,提供了一系列可管理的學習曲線給初學者熟悉 PHP 的基礎,同時又提供了健壯和強大的功能給有經驗的 PHP 開發者。大小小於 2MB。
Phalcon
Phalcon 是一個開源的,滿棧的 PHP 框架,使用 PHP 5 類似 C 擴展的語言來編寫的高性能框架。用戶不需要會用 C 語言,Phalcon 會提供 PHP 類。Phalcon 是鬆散耦合,用戶可以隨意使用組件來創建 web 應用。
⑹ PHP的哪個MVC框架最值得推薦
1、Laravel,laravel這個框架很有意思,定時任務,數據遷移,大概你能在web中想到的功能這個框架都可以提供,它的路由借鑒了Ruby on Rails 和Python的flask框架,但是還提供了web方面其它的一些功能,你可以把它想像成PHP中像Java一樣強大的Web中的瑞士軍刀,前提是你不考慮性能,因為它的實現使用了大量的閉包和反射,大概在PHP里嚴格引入設計模式的也只有這個了。
生產效率:5星
學習難度:5星(5星為最難,學習成本最高,下同)
性能:2星
社區活躍:4星(社區活躍可以很方便的找到別人已經開發的功能,專指中文文檔,組件豐富性)
2、ThinkPHP5,大概3年前研究過TP3源碼,使用起來簡單,因為自動載入的問題,性能是個坑,現在發展到5,個人認為已經是一個相當優秀的框架了,路由定義簡單,配置簡單,文檔豐富,社區也相當活躍
生產效率:5星
學習難度:1星
性能:4星
社區活躍:4星
3、Yii2,Yii2的路由分發跟TP5稍微有點不一樣,也使用了反射的功能,自動載入現在都使用的composer,大體上都差不多,都有延時載入,Yii2的路由相對智能一些,不用去手動維護,類似於TP3所以使用起來也是很方便,性能比TP5應該略差點,沒測試過,從源碼來看
生產效率:5星
學習難度:2星
性能:3.5星
社區活躍:4星(很多強大的組件,你只要下載就行了,會省很多事)
4、CakePHP,這個框架內部的封裝性看上去沒上面那幾個優美,但是它自己實現了use關鍵字功能,所以兼容性來看應該是比上面那幾個好點的,但這在新項目上應該不是問題,新項目上PHP7,啥都別想,准沒錯。它的路由定義類似於TP5但是稍微多點功能,不過其實是個雞肋。中文文檔就不說了,很不好找。不過也算是個相對簡單的框架嚴格遵循MVC
生產效率:3星
學習難度:3星
性能:4星
社區活躍:2星
5、Workman,這個框架相當強大,如果你要實現一些復雜的協議或者用php做一些websocket推送或者TCP/UDP伺服器的話,這個框架可能可以滿足你的需求,也有一些非同步的組件,比較高級的框架,初中級程序員可能用不上
生產效率:3星
學習難度:4星
性能:3星
社區活躍:2星
6、swool,這是個相當有意思的框架,性能很強大,旁友,你聽說過非同步編程的nodejs,python的tornado框架嗎,這個在php里做的就是一個這樣的事情,國內的一位老兄開發的C擴展,用php來非同步編程,看了下文檔,稍微做了個性能測試,相當優秀,就是不知道在項目中重度使用會不會踩到什麼坑,而且這也是一個相當高級的框架。大部分人可能直接轉node了吧,畢竟node生態環境已經相當好了,總之,如果你想用php試試非同步編程來提高性能,非這個框架莫屬。性能獨一檔,編程難度也相對高一些,你需要有些進程的理論基礎
生產效率:3星
學習難度:4星
性能:6星
社區活躍:2星
7、Yaf,鳥哥寫的c擴展框架,然而你要自己實現很多輪子,生態環境是個大問題。
生產效率:4星
學習難度:4星
性能:5.5星
社區活躍:2星
其它框架還沒怎麼了解,國內的話,根據具體業務,選上面幾個,沒錯。
⑺ 為什麼 Laravel 會成為最成功的 PHP 框架
模塊化和可擴展性
Laravel注重代碼的模塊化和可擴展性。你可以在包含超過5500個程序包的Packalyst目錄中找到你想要添加的任何文件。Laravel的目標是讓你能夠找到任何想要的文件。
微服務和程序介面
Lumen 是一個由laravel衍生的專注於精簡的微框架。它高性能的程序介面可讓你更加簡單快速的開發微型項目。Lumen使用最小的配置集成了所有laravel的重要特性,你可以通過將代碼復制到laravel項目的方式將完整的框架遷移過來。
<?php $app->get('/', function() { return view('lumen'); }); $app->post('framework/{id}', function($framework) { $this->dispatch(new Energy($framework)); }); HTTP路徑
Laravel擁有類似於Ruby on Rails的,快速、高效的路由系統。它可以讓用戶通過在瀏覽器上輸入路徑的方式讓應用程序的各部分相關聯。
Route::get('/', function () { return 'Hello World'; }); HTTP中間件
應用程序可受到中間件的保護——中間件會處理分析和過濾伺服器上的HTTP請求。你可以安裝中間件,用於驗證注冊用戶,並避免如跨站腳本(XSS)或其它的安全狀況的問題。
<?php namespace App\Http\Middleware; use Closure; class OldMiddleware { public function handle($request, Closure $next) { if ($request->input('age') <= 200) { return redirect('home'); } return $next($request); } } 緩存
你的應用程序可得到一個健壯的緩存系統,通過對其進行調整,可以讓應用程序的載入更加快速,這可以給你的用戶提供最好的使用體驗。
Cache::extend('mongo', function($app) { return Cache::repository(new MongoStore); }); 身份驗證
安全是至關重要的。Laravel自帶對本地用戶的身份驗證,並可以使用「remember」 選項來記住用戶。它還可以讓你例如一些額外參數,例如顯示是否為活躍的用戶。
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1 ], $remember)) { // The user is being remembered... } 種類集成
Laravel Cashier可以滿足你要開發支付系統所需要的一切需求。除此之外,它還同步並集成了用戶身份驗證系統。所以,你不再需要擔心如何將計費系統集成到開發當中了。
$user = User::find(1); $user->subion('monthly')->create($creditCardToken); 任務自動化
Elixir是一個可讓我們使用 Gulp 定義任務的Laravel程序介面,我們可以使用Elixir定義可精簡CSS 和Java的預處理器。
elixir(function(mix) { mix.browserify('main.js'); }); 加密
一個安全的應用程序應該做到可把數據進行加密。使用Laravel,可以啟用OpenSSL安全加密演算法AES-256-CBC來滿足你所有的需求。另外,所有的加密值都是由檢測加密信息是否被改變的驗證碼所簽署的。
use Illuminate\Contracts\Encryption\DecryptException; try { $decrypted = Crypt::decrypt($encryptedValue); } catch (DecryptException $e) { // } 事件處理
應用程序中事件的定義、記錄和聆聽都非常迅速。 EventServiceProvider事件中的listen包含記錄在你應用程序上所有事件的列表。
protected $listen = [ 'App\Events\PodcastWasPurchased' => [ 'App\Listeners\EmailPurchaseConfirmation', ], ]; 分頁
在Laravel中分頁是非常容易的因為它能夠根據用戶的瀏覽器當前頁面生成一系列鏈接。
<?php namespace App\Http\Controllers; use DB; use App\Http\Controllers\Controller; class UserController extends Controller { public function index() { $users = DB::table('users')->paginate(15); return view('user.index', ['users' => $users]); } } 對象關系圖(ORM)
Laravel包含一個處理資料庫的層,它的對象關系圖被稱為 Eloquent 。另外這個對象關系圖也適用於 PostgreSQL 。
$users = User::where('votes', '>', 100)->take(10)->get(); foreach ($users as $user) { var_mp($user->name); } 單元測試
單元測試的開發是一個耗費大量時間的任務,但是它卻是保證我們的應用程序保持正常工作的關鍵。Laravel中可使用 PHPUnit執行單元測試。
<php use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\DatabaseTransactions; class ExampleTest extends TestCase { public function testBasicExample() { $this->visit('/') ->see('Laravel 5') ->dontSee('Rails'); } } 待辦事項清單
Laravel提供在後台使用待辦事項清單(to do list)處理復雜、漫長流程的選擇。它可以讓我們非同步處理某些流程而不需要用戶的持續導航。