e框架php
A. YII框架和THINKphp的區別
這不是一篇評測文章。只是我的喃喃碎語,不計較真。而且,下面的內容真的會很雜,不全面,而且你不可能有和我一樣的開發經歷。所以對於某些我醉心的特性,你可能不會理解。同樣的,我也不可能全部理解你為何對某一項特性十分喜歡。
關於ThinkPHP(以下簡稱TP)和Yii Framework(以下簡稱Yii)的背景、作者和速度方面就不涉及了。因為速度是一個很復雜的問題,牽扯的因素很多。我不得不承認ThinkPHP是 一個是國內框架運營方面的榜樣(當FleaPHP/QeePHP最火的那陣,我說過FleaPHP/QeePHP會倒的)。
運行環境:
Windows NT ACER 5.1 build 2600 (Windows XP Professional Service Pack 3) i586
Apache/2.2.14 (Win32) DAV/2 mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
Mysql 5.1.4
下載的代碼:
ThinkPHP 2.1,帶擴展、示例和文檔完整包,發布於2011年5月1日,下載地址是 http://thinkphp.cn/Down/download/178
Yii 1.1.7,內含框架、實例和環境檢測,下載地址 http://yii.googlecode.com/files/yii-1.1.7.r3135.tar.gz 文檔需要另外下載
中文化方面,TP和Yii都可以滿足中文用戶的需求。但是由於Yii是國際化的項目,所以代碼的注釋仍舊是英文。不過兩個框架的作者都是國人(沒錯,Yii作者的國籍仍舊是中國),所以交流起來還是很方便的。
是Yii自帶了一個環境檢測腳本,可以告訴你當前的主機環境是否滿足Yii的需求。檢測的內容也比較詳細。我覺得這點比較方便。TP最低需要PHP5.0支持,而Yii最低需要PHP 5.1.0支持。由於我使用PHP 5.3,所以對我來說沒有什麼區別。
Yii是純面向對象的的框架,而TP提供了一系列單字母函數。相比之下我更喜歡Yii的方式,因為可以避免項目之間的沖突。
TP在以前的版本的基類Base類,當時就和一個整合Ucenter時的類沖突了,一度很苦惱。現在TP的各種基類仍舊是直接命名,如Think 類。在項目開發過程中就會體會命名沖突的痛苦之處。Yii則在框架的類都加上了C前綴(介面是I前綴),有效地避免了這個問題。Yii中的 CComponent是所有類的基類,可以看看CComponent的代碼,很有用。
說到命名問題了,就不得不說自動導入的問題。TP的類導入和Yii的代碼風格差不多。但是Yii還支持PHP的命名空間和自定義autoload方法。
TP有個特色叫項目編譯。我覺得與其使用項目編譯,還不如使用APC。在Yii中也有個yiilite.php文件,裡面就包含了Yii的所有核心類。Yii作者表示在沒有APC的情況下,還是不要使用這個「編譯」好的文件,因為反而會增加系統開銷。
TP中還在第一次訪問的時候自動生成項目,我覺得這一點和自動編譯一樣,都是我不喜歡的。我對每添加一個if都很敏感,這種判斷讓我很糾結。比如說 TP在每次運行的時候都要檢測PHP版本,而Yii則單獨做了一個內容更詳細的環境監測腳本。我既然要用這個框架,我在第一次使用的時候,肯定就知道能不 能在當前環境上使用了,為什麼要每次都要檢測呢。當時我就說過,TP為用戶做了太多事情。比如舊版本中的TopN函數。
Yii的組件思路是非常不錯的,用起來十分地舒服。從session到cache,你可以無縫地更換所有的組件而無需重構項目。而且Yii的延遲加 載也做得比較徹底,每個組件都是用到的時候才載入。比如,TP中,如果配置了session自動打開,則TP在應用初始化的時候執行 session_start()。而Yii則是你用到session的時候才打開session。
說到項目的配置文件,TP要求是config.php,而Yii則比較靈活,支持多配置文件。
當初TP很推崇自己的ThinkAjax,現在也改用JQuery。這一點是進步。
TP做了很多小實例,這一點值得Yii學習。Yii在這一方面正在有一個叫yii playground的實例網站在開發中(http://code.google.com/p/yiiplayground/)。
TP的動態模型可以實現不需要定義Model。但是在實際的項目中,我更傾向於使用Yii的方式。順便說一句,將label定義在model中,為我的日常開發帶來了許多方便之處。
剛才提到TP的項目自動生成,Yii中也有這種工具。而且比起TP,Yii的工具更加強大而且可擴展。
從TP的代碼中,有人可以看出其作者熟悉JAVA。而從Yii的代碼中,有人會發現其作者熟悉.Net。這常常是我身邊人看到代碼的時候發生的小插曲。
Yii封裝了大量的頁面控制項和類庫,也是Yii如此吸引我的一點。這是TP短期無法比擬的,在TP的使用過程中總遇到這樣那樣的問題,讓我感覺TP對我反而是阻礙。而Yii真的是,舒服,實在是太好用了!
無論從代碼規范、設計思路、類庫豐富程度上來說,TP都遠遠不及Yii。有人說你看TP多簡潔,Yii太臃腫了。錯了!簡單和簡潔不是一回事。TP 那叫簡單,你讀讀Yii的代碼吧,那才叫簡潔。至於臃腫,去看看Zend Framework就知道了。(順便說一句,我很喜歡Zend Framework,它是學習設計的典範)
說到讀代碼。對於程序員真的很難嗎?讀寫得好的代碼應該是一種享受才對。Yii的學習曲線是比TP高那麼一點點,但是對比Yii的巨大優勢而言不算什麼了。而且,我認為在遇到學習困難就退縮或者認為Yii就像天書一樣的人,還是轉行吧。
以上是應一篇評論所寫的。對比TP1,現在的TP2的確有了很多進步,但是還是存在一些問題。對比Yii……,TP真的沒有可比的能力。抱歉讓TP的fans失望了。
那就下定論了嗎?不,不是的。從類庫到框架,再到解決方案。什麼是最好的?每一個人都有不同發說法,這是因為每一個人的思維習慣不同,遇到的問題不同,問題所在的環境也不同。怎麼能奢求所有人都有同一個選擇呢?
還是那句,適合,就是最好的。對我來說,Yii是最好的。
B. php有哪些框架
PHP的框架有很多,這里說一部分供大家參考:
國內框架:ThinkPHP, Canphp, KYPHP, InitPHP, SpeedPHP, CdvPHP,KPHP。
國外著名框架:Zend Framework,Codelgniter,CakePHP,Symfony,Yii,Seagull,Laravel。
小型框架:E,DuoLamPHP,Difeye,GalaxixPhp,PhpPeanuts,Rong Framework,Openbiz Framework。
C. php主流框架有哪些
當下最流行的PHP開發框架有哪些?你好,首先我們談一談「框架」是什麼。「php開發框架」,顧名思義,就是要可靠、安全、高效率地搭建出web應用,這也是目的。
那麼,框架的優勢在哪裡?我們為什麼要用框架?——因為框架可以將資料庫、緩存、會話等功能組建合並為一,方便使用。
下面我們聊一聊比較流行的三個php開發框架。
Lavarel:這是一整套語法簡潔,好理解的web開發框架。主要的優勢集中體現在後期的支持、文檔的全備,還有活躍的社區上。學習Lavarel,需要先對PHP語言、面向對象、資料庫的操作有一個基本的學習基礎。
ThinkPHP:基於最開始即沿用的簡單結構——mvc和面向對象的輕量級PHP開發框架。簡單的語法下增添了原創功能和特性,強力支持了web應用的開發。
Yii:極其優化的性能,對於任何種類的項目而言都很容易露一手。文檔功能十分詳盡,擁有一切你需要學習的信息。不管是開源的還是私有的應用,都可以自消罩返由地使用!不論從法律還是財務上來講!
結語:
很多朋友都容易有這樣的疑問——這三個框架哪個更好?這里我拿飢簡單回答一下,沒有好不好,只有適不悶吵適合,如果頭子說yii好,必定就是yii主導地位。
最後分享一個程序猿大大滴提高效率的工具,答案就是——單身。
好,下回見
目前php開發網站,最為流行的框架是哪幾個?Yii
Yii是一個基於組件的高性能的PHP的框架,用於開發大規模Web應用。Yii採用嚴格的OOP編寫,並有著完善的庫引用以及全面的教程。從MVC,DAO/,widgets,caching,等級式RBAC,Web服務,到主體化,I18N和L10N,Yii提供了今日Web2.0應用開發所需要的幾乎一切功能。而且這個框架的價格也並不太高。事實上,Yii是最有效率的PHP框架之一。
CodeIgniter
CodeIgniter是一個應用開發框架——一個為建立PHP網站的人們所設計的工具包。其目標在於快速的開發項目:它提供了豐富的庫組以完成常見的任務,以及簡單的界面,富有條理性的架構來訪問這些庫。使用CodeIgniter開發可以往項目中注入更多的創造力,因為它節省了大量編碼的時間。
CakePHP
CakePHP是一個快模咐速開發PHP的框架,其中使用了一些常見的設計模式如,AssociationDataMapping,FrontController以及MVC。其主要目標在於提供一個令任意水平的PHP開發人員都能夠快速開發web應用的框架,而且這個快速的實現並沒有談殲犧牲項目的彈性。當然啦,如果是自助建設網站可以旦侍純藉助建站寶盒來進行。
php有哪些框架?
PHP的框架有很多,這里說一部分供大家參考:
國內框架:ThinkPHP,Canphp,KYPHP,InitPHP,SpeedPHP,CdvPHP,KPHP。
國外著名框架:ZendFramework,Codelgniter,CakePHP,Symfony?,Yii,Seagull,Laravel。
小型框架:E,DuoLamPHP,Difeye,GalaxixPhp,PhpPeanuts,RongFramework,OpenbizFramework。
PHP作為網路開發的強大語言之一,現在應用非常廣泛,具有開放源代碼,跨平台性強,開發快捷,效率高,面向對象,並且易於上手,專業專注等諸多優點。各種PHP開發框架也讓程序開發變的簡單有效。
框架就是通過提供一個開發Web程序的基本架構,PHP開發框架把PHPWeb程序開發擺到了流水線上。換句話說,PHP開發框架有助於促進快速軟體開發(RAD),這節約了你的時間,有助於創建更為穩定的程序,並減少開發者的重復編寫代碼的勞動。這些框架還通過確保正確的資料庫操作以及只在表現層編程的方式幫助初學者創建穩定的程序。PHP開發框架使得你可以花更多的時間去創造真正的Web程序,而不是編寫重復性的代碼。
排名前10並且最受歡迎的PHP框架(排名不分先後)。,
1,Laravel這款可能是現在最受歡迎的PHP框架,Laravel非常強大,而且銷橡很高雅,易於學習和使用。非常值得一試!
2,Flight是一個快速,簡單,可擴展的微型PHP框架,允許用戶快速的構建RESTfulweb應用,同樣易於學習和使用,簡單但是很強大!
3,Yii是個高性能的PHP框架,用來開發Web2.0應用程序,Yii擁有很豐富的特性:MVC,DAO/ActiveRecord,I8N/L10N,緩存,身份認證,基於用戶角色的訪問控制,scaffolding和測試等等。
4,,Medoo是最輕的PHP資料庫,只包括了一個10,9kb的文件桐悄,一個很強大的適用於簡單的web小應用開發的微型框架。
5,PHPixie這局斗渣個框架源於Kohana框架,是我最喜歡的框架了:兼容MVC,能快速掌握,強大,你也應該試一試!
6,CodeIgniter雖然是個比較老的框架,但是我還是很喜歡這個強大的MVC框架CI,無數次在我的項目中使用它,從來也沒對它失去信心,依然是我不變的選擇!
7,Kohana是個開源的,面向對象的MVCweb框架,是使用PHP5來構建的。這個框架是由一群志願者隊伍開發的,他們致力於迅速,安全和小。
8,Symfony這個框架是在2005年創建,是個非常強大的MVC框架,在企業界是非常受歡迎的。Symfony是收到眾多的web應用框架啟發的:RubyonRails,Django和Spring,它可能是最完整的PHP框架了。
9,PopPHP很多PHP框架很漂亮也很復雜,Pop的建立是考慮到所有經驗層次的,提供了一系列可管理的學習曲線給初學者熟悉PHP的基礎,同時又提供了健壯和強大的功能給有經驗的PHP開發者。大小小於2MB。
10,Phalcon是一個開源的,滿棧的PHP框架,使用PHP5類似C擴展的語言來編寫的高性能框架。用戶不需要會用C語言,Phalcon會提供PHP類。Phalcon是鬆散耦合,用戶可以隨意使用組件來創建web應用。
D. 當今較為常見的3種 web應用程序開發平台類型
Openbiz Cubi PHP開發框架
這顯然是一個高耦合性的框架的代表,有點讓開發人員「拎包入住」快捷酒店一樣的的感覺。Openbiz Cubi 是一個應用平台式的開發框架。雖然與眾多更加耳熟能詳的框架相比 Openbiz Cubi 仍然是一匹黑馬,但是還是一個十分值得推薦的框架。它自身基於Zend Framework構建,但是擁有自己獨特的基於元數據的 MVC 和 ORM 邏輯,並採用Smarty和PHP模板 作為主要UI的模板引擎,所以如果你是Zend框架的玩家,別擔心,Openbiz Cubi的代碼也會同樣讓你很容易上手。
它不同於其他傳統意義上的PHP框架,它具有一個類似JAVA的元數據引擎, 可以通過XML的方式來「描述」大多數對象,甚至通過XML的描述就可以實現數據的CRUD(增刪讀改)這些操作。如果你的業務需求僅僅是要實現一些簡單 的數據CRUD操作,你甚至不需要去寫什麼PHP代碼,XML就可以全部搞定。而你的PHP功夫可以通過他的Plugin-Service方式用於集中在 實現某些特殊的業務邏輯上。
Openbiz Cubi目 前還有一個叫做 Openbiz Appbuilder 的超級好用的代碼生成工具,對於還不熟Openbiz的XML元數據的開發人員來說,Appbuilder 絕對是一個可以幫助你快速上手的利器,他通過圖形界面的生成向導來幫你自動創建數據對象、表單對象、嵌入式服務,甚至整個應用程序的雛形。 按Openbiz的官方介紹來說,你只需要思考清楚你的應用程序的業務邏輯,剩下的代碼工作就交給Openbiz Appbuilder來幫你搞定吧。
CakePHP 開發框架
如果你仍然需要編寫面向PHP4兼容的代碼,CakePHP 將是一個非常不錯的選擇, 在PHP 4 & 5的MVC式框架列表裡面,CakePHP都曾經是最流行的。它還提供了很多種途徑的技術支持(討論組、留言板、IRC等)還有優秀的教程。 CackePHP是個很容易上手的框架,但是你並不容易在短短幾周的時間就完全掌握它。
Zend Framework框架
Zend Framework 是面對一些較有經驗的開發者和從底層構建一些企業級應用程序而設計的。(例如:宣稱面向企業應用而設計的 Openbiz Cubi 就是基於Zend Framework框架之上而構建的。)該框架是高度模塊化的。這意味著你可以按你的實際需要來引用Zend的代碼。有些函數庫甚至可以很容的被提取出來 單獨使用(例如Zend_Gdata,這也是個低耦合性的特點)使用Zend框架,你不必非要遵從它的MVC架構,(雖然你最好能這么做),並且它還提供 了許多內建的高級功能用於完成與現有的web服務整合,多語言化和實現單元測試這些任務。
CodeIgniter
CodeIgniter 是一個PHP5.2+ 的MVC框架,它體積小巧切具有豐富的文檔資源。通常被稱為「初學者框架」,因為它相對容易試用和較短的學習曲線,此外CodeIgniter也是十分靈 活和強大的。該框架擁有一個非常龐大的社區支持。並且在社區裡面很大桐容易找到大量的CI函數庫,你可以大膽的夢想, 也許你正需要做的事情在社區的某個交流,某個人已經把它實現了。
Symfony
Symfony 是最古老的PHP框架之一(相信你從他的網站風格上也發現這一點了),他同樣也是轉為企業級Web應用程序而設計的。然而,對於他所能提供的所有動力和性 能而言,它只擁有很小的體積並且非常滾帆坦容易配置在大多數php的主機環境中。由於他的年頭最長久,你會很容易找到許多關於Symfony的教程、書記等資 料,對於新手來說,這絕對是件好事兒。
Symfony使用命令行代碼生成工具來為項目快速生成所需的代碼,這種方式也許對於某些開發人員來說是前所未聞的(在那個年頭,也許 吧。。。)然後,他可以幫助你在很短的時間里完成轎段代碼並是他們可以運行。Symfony的網站上手機了大量的教程和範例代碼,來幫助你熟悉掌握他們。
Yii Framework
Yii 是一個高度模塊化,高性能的PHP5框架,專門為了Web應用程序而開發。Yii採用了大量的命令行生成工具,讓你可以快速的生成一些代碼,因此,他最適 合於喜歡在命令行的黑窗口上敲敲打打的人。所有這些代碼生成工具意味著你需要記住更多的命令和參數,但是一點你做到了,你會發現,它們將大大減少你所要花 費的時間來設置和配置你的應用程序。
這種開發方式 非常類似於Openbiz Appbuilder所提供的向導式的代碼生成方式,最大的不同點是Yii是基於命令行去生成代碼,Openbiz Appbuilder是在圖形界面上生成代碼。
ThinkPHP
ThinkPHP是一個免費開源的,快速、簡單的面向對象的輕量級PHP 開發框架,遵循 Apache2 開源協議發布,是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。借鑒了國外很多優秀的框架和模式,使用面向對象的開發結構和 MVC 模式,融合了 Struts 的 Action 思想和 JSP 的 TagLib(標簽庫)、 RoR 的ORM映射和 ActiveRecord 模式, 封裝了 CURD 和一些常用操作, 單一入口模式等,在模版引擎、緩存機制、認證機制和擴展性方面均有獨特的表現。
Yii Framework
Yii是一個基於組件的高性能PHP框架,用於開發大型Web應用。Yii採用嚴格的OOP編寫,並有著完善的庫引用以及全面的教程。從 MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務,到主題化,I18N和L10N,Yii提供了今日Web 2.0應用開發所需要的幾乎一切功能。事實上,Yii是最有效率的PHP框架之一。
Yii是一個高性能的PHP5的web應用程序開發框架。通過一個簡單的命令行工具 yiic 可以快速創建一個web應用程序的代碼框架,開發者可以在生成的代碼框架基礎上添加業務邏輯,以快速完成應用程序的開發
phalcon
Phalcon是一套實現MVC架構的高性能PHP應用程序框架。初始版本發布於2012年11月,開放源代碼並基於BSD授權條款。與其他大部分的PHP框架不同,Phalcon是以擴充的方式以C語言所編寫,因此Phalcon的執行速度高過其他PHP框架,並且消耗更少的資源,根據官方的測試,Phalcon是目前世界上速度最快的PHP框架之一。[1]