成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

PHP開發框架的現狀和展望

瀏覽:4日期:2023-12-20 09:49:25

引言:隨著Ruby on Rails的火爆,PHP這個流行的Web應用腳本語言也出現了大量的新一代開發框架。與此同時,國內PHP開發者也開始緊跟國外發展,推出了不同的開發框架。

Ruby on Rails催生變革在RoR流行之前,PHP領域也有不少開發框架,例如Mojavi、WACT、PHPMvc和Seagull等。這些框架雖然也采用了MVC模式、數據庫抽象層等技術。但由于當時PHP本身不像現在這樣流行,所以這些框架都沒有得到大量應用,最終歸于沉寂。而在感受到RoR提供的快速開發能力后,PHP社區像被注入了興奮劑。各種應用技術和開發框架層出不窮。

新一代框架的誕生PHP社區在被RoR震暈后,沒有陷入過多的爭論。而是立即行動起來,開始了新一代框架的設計。首先出現的第一批框架幾乎都是RoR的克隆。例 如PHP on Trax(連名字都借鑒Ruby on Rails)和TaniPHP、Akelos等。這些框架最大的特點就是力求100%克隆RoR,不管是采用的架構、設計模式,還是使用方法。這幾個框架一開始確實吸引了開發者的注意,但隨著開發者的深入了解,這些框架頭上的光環逐步褪色。晦澀難懂的架構、糟糕的性能,以及太多的限制,讓這些框架難以在實際項目中運用。此時,許多PHP開發者認為可以借鑒RoR的設計思想,但不應照搬RoR的結構和實現。為此,一些同樣推崇快速開發的框架開始在PHP社區出現。這些框架中,CakePHP和Symfony可謂佼佼者。

CakePHP(http://www.cakephp.org/)CakePHP充滿了RoR的影子,從ActiveRecord模式到視圖的布局管理都和RoR非常相似。而且CakePHP一開始也嘗試實現與 RoR一樣的許多東西。但CakePHP的開發團隊后來發現PHP語言和Ruby語言存在巨大區別,因此RoR中的許多設計即便能夠在PHP中實現,也是 缺乏實用價值的。CakePHP在發展中逐步走出了RoR的陰影,開始探索更能發揮PHP語言本身優勢的架構和實現。因此有一段時間CakePHP的API發生了劇烈的變化,以致其他開發者紛紛停下腳步處于觀望狀態。但由于前期一些架構的不合理和對RoR太多的模仿,導致CakePHP的核心部分越來越難以理解,運行性能也不盡人意。而且CakePHP將一個龐大的數據庫操作對象作為所有業務對象的基礎。這雖然利于快速開發,但卻導致對業務邏輯對象的測試非常困難。對于較小型的項目,CakePHP非常理想。出色的快速開發能力、豐富的API和詳盡的文檔都可以幫助開發者很快完成工作。但隨著項目規模的增加,CakePHP的局限性也變得突出。

Symfony(http://www.symfony-project.com/)Symfony是一個非常成熟的框架,大量利用了已有的開源項目。Symfony使用Mojavi的核心代碼實現了框架的MVC模式,利用 Propel作為數據庫抽象層。Symfony不僅功能強大,而且對Ajax有全面的支持。加上官方網站提供的大量文檔和教程,并擁有一個活躍的社區,因 此受到許多開發者的歡迎。但是,Symfony最大的問題也在于使用了太多風格迥異的開源項目來組合成框架。由于Mojavi和Propel本身都相當復雜,因此Symfony的結構非常復雜,難以理解和學習。不過對于希望選擇一個框架作為企業內部系統基礎架構的企業來說,Symfony的成熟度、豐富的文檔和活躍的社區都是值得考慮的。畢竟企業內部系統更為看重的是穩定性和長期的支持。

商業利益與大道至簡看到PHP開發框架的潛在商業價值后,Zend.com聯合IBM宣布將要推出一個真正能夠發揮PHP優勢的開發框架。一時間,這個消息在整個PHP社區引起了地震。大家都開始期盼這個具有“官方”背景的開發框架能夠為PHP開發者指出一條正確的道路。不過世事難測,就在Zend Framework團隊公布幾個代碼片斷后,立即就有開發者指出這些代碼片段是不可能實現的。事實證明這些代碼片段不過是美好的理想。限于PHP語言本身 的能力,Zend Framework最終沒有實現當初承諾提供的類似RoR中ActiveRecord模式的實現品。

Zend Framework(http://framework.zend.com/) Zend Framework大量應用了PHP5中面向對象的新特征:接口、異常、抽象類、SPL等等。這些東西的應用讓Zend Framework具有高度的模塊化和靈活性。同時,因為嚴格遵循“針對接口編程”和“單一對象職責”等原則,讓Zend Framework很有希望成為一個出色的企業應用開發框架。但不幸的是Zend Framework直到今天,也沒有做出更多的突破。在使用Zend Framework開發時,框架對應用程序自身最重要的領域邏輯分離沒有提供任何幫助。如果希望開發出真正健壯的企業應用,仍然需要開發者做出相當的努 力,并且在Zend Framework之上建造自己的基礎設施。針對這點,批評者指出Zend Framework雖然大量應用PHP5的新特征,但卻沒有將這些相對于PHP4的優勢轉化為能夠為開發者提供幫助的東西。

對于簡單和小型的項目來說,Zend Framework不但不能提高開發效率。反而因為在框架中應用了大量面向對象設計和PHP5的新特征,對開發者提出了更高的要求,間接增加了項目的開發 成本。而對于較大的項目和企業應用,Zend Framework倒是一個不錯的基礎。但要創建一個成功的應用,仍然需要付出不小的努力。并且要時刻注意Zend Framewok的性能問題。

Code Igniter(http://www.codeigniter.com/)Code Igniter可以說是一匹黑馬。Code Igniter出現之時正是Symfony和CakePHP大行其道、Zend Framework萬眾期待的時刻。可憑借著獨特的設計思想,Code Igniter吸引了大批開發者。這點從其火爆的官方論壇就可得到證實。Code Igniter推崇“簡單就是美”這一原則。沒有花哨的設計模式、沒有華麗的對象結構,一切都是那么簡單。幾行代碼就能開始運行,再加幾行代碼就可以進行 輸出。大部分日常開發中用到的東西都可以立即找到,并且可以很容易的使用。Code Igniter可謂是“大道至簡”的典范。但是,Code Igniter本身的實現不太理想。內部結構過于混亂,雖然簡單易用,但缺乏擴展能力。因此在發展到1.5系列版本時,作者不得不通過增加各種hooks來為框架提供擴展能力。

國內PHP開發框架國內雖然過去也曾有開發者發布過一些框架,但這些框架要么太過簡單,要么和某一類型的應用緊密耦合,缺乏通用性。直到進入2006年,隨著PHP在國內的大量應用和追捧,真正的國產PHP開發框架才陸續發布。

FCS(http://fcs.org.cn/) FCS是從Java的Struts結構移植過來的中文PHP開發框架,使用面向對象的開發結構和MVC模式,并且模擬實現了Struts的標簽庫,借 鑒了國外一些不錯的思想,尤其是Java框架方面,因此熟悉Java的開發人員相對比較容易上手,其模版引擎、緩存機制、認證機制和擴展性方面均表現不 凡。在借鑒國外優秀思想的同時,FCS也更多地考慮了國內的應用開發需要。PHP4兼容、完全支持UTF-8,以及PATHINFO支持等,更加有利于國 內的主機環境和開發需要。秉著易用和易擴展的原則,FCS采用容易理解的項目、模塊和操作機制加上內置的一些自動化操作方法,讓應用開發變得更加簡單,其 功能可以通過基類庫以及各種插件的形式靈活擴展,從而滿足日益增長的業務需求。正是因為具備良好的開發結構,使得FCS在開發大型應用的時候并不會顯得有 很多障礙,基于構件的方式,以及配合框架的項目管理機制同樣可以讓你在處理大型應用的時候一展所長。FCS力求精簡的代碼和全中文化的文檔、注釋,有利于國內PHP開發人員學習和掌握,不過根據目前的情況來看,官方的文檔和社區支持目前還比較缺乏,而且對Ajax的支持還不夠全面,因此國內的應用成熟度還不夠。

FleaPHP(http://www.fleaphp.org/) FleaPHP從發展上看,是一個具有一定歷史的框架。在過去三年中,FleaPHP是作者發布了從PFC1到PFC3系列和flea1試驗框架后,推出的第一個真正成熟、穩定的開發框架。與許多其他框架不同,FleaPHP設計之初,就是圍繞快速開發和充分利用PHP自身優勢兩個重點展開的。因此FleaPHP最大的特點就是極高的模塊化程度和擴展能力。FleaPHP框架的核心非常小,但通過靈活的配置,可以組合出各種類型的基礎架構。對于簡單的腳本頁面,FleaPHP不需要載入MVC模式,只需 要為應用程序提供業務邏輯和數據庫服務。而對于復雜的應用程序,FleaPHP可以完成從MVC模式調用、訪問控制、數據驗證到文件上傳、圖片處理等各種 各樣的任務。正是因為這種出色的定制和擴展能力,FleaPHP真正接近了“滿足從簡單應用到企業開發的各種需求”這個目標。而且與許多其他框架不同, FleaPHP是一個完全在實際開發中精煉出來的框架。因此伴隨著FleaPHP的發展,各種各樣的實際應用也相繼出現。在FleaPHP官方網站上,可 以看到各種各樣的實際應用。從最簡單的企業宣傳網站,到復雜的社區網站、企業內部系統等等,不一而足。

FleaPHP作為一個完全國產的框架,具有完全中文化的文檔、代碼注釋,并且在擴展功能上也注重考慮國內開發者的實際需求。因此相對于國外的各種框架,FleaPHP更容易被國內開發者所接受。但是,也正因為處在國內,FleaPHP面臨比國外同行多得多的困難。缺乏足夠的貢獻者、無禮的責難,以及充滿懷疑的眼光,這些都讓FleaPHP的 開發團隊成員需要更多的奉獻精神。而且由于缺乏足夠的貢獻者,FleaPHP框架目前在文檔和擴展功能方面,與其他成熟框架相比還有不小的差距。并且與其他所有的PHP開發框架一樣,FleaPHP也沒有找到幫助開發者分離應用程序領域邏輯的途徑。雖然有指導文檔,但對于初級開發者來說,一個可以拿來就用的領域邏輯基礎會顯得很實用。

反思與進取RoR帶來的沖擊波還遠為平息,但PHP開發者們已經在開始反思一味追隨RoR的腳步是否真的能夠為PHP開發帶來質變?RoR之所以能夠取得如此巨大的成功,除了RoR本身的設計思想外,還有一個重要原因就是RoR充分利用了Ruby這種語言的特長。將Ruby動態語 言的優勢發揮得淋漓盡致。而在PHP中如果只是單純照搬RoR中設計,則要處處遇到PHP語言本身的限制。為了繞開這些限制,開發者不得不用一些難以理解 的技巧來解決問題。但這樣一來通常會導致框架的結構變得晦澀難懂、性能受到損害。在這種反思中,Code Igniter、FleaPHP等框架就是對這個問題的最好回答。只有充分利用PHP語言本身的優勢,才能真正讓PHP開發變得更簡單、更有趣。

發展到今天,各種PHP開發框架雖然具有各自的特色,但幾乎都是為了提高開發效率而努力。但是,雖然其中部分框架注意到了提高應用程序可維護性的問題,但都沒有為領域邏輯分離這個至關重要的問題提出解決方案。而這正是這些框架在未來的發展目標。對于簡單的Web應用和復雜的企業應用,兩者之間的差別就注定了采用一種固定的架構是無法滿足需求的。因此像FleaPHP這樣能夠提供自定義架構能力的框架,可以讓開發者嘗試用一個框架的不同組合來解決從簡單到復雜的不同程度的需求。

未來,PHP將成為Web開發領域中越來越重要的平臺。因此我們相信會出現更多更好的開發框架。雖然作為開發者來說,并不一定需要采用某一個框架來解決問題。但正是因為這些不斷出現的框架,我們對使用PHP開發Web應用的理解和把握得到了一次次的推動。

出處:http://blog.csdn.net/fleaphp/archive/2006/12/25/1460556.aspx

標簽: PHP
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产成人亚洲精品狼色在线| 久久久精品免费观看| 久久久午夜精品理论片中文字幕| 国产在线视频一区二区| 在线看日本不卡| 亚洲综合自拍偷拍| 日韩天天综合| 亚洲精品大片www| 亚洲一区欧美激情| 亚洲va欧美va天堂v国产综合| 中日韩在线视频| 亚洲最新在线观看| 国产欧美一区二区三区国产幕精品| **性色生活片久久毛片| 狠狠爱www人成狠狠爱综合网| 久久精品视频免费| 欧美精品一区三区在线观看| 最新国产の精品合集bt伙计| 亚洲人成网站在线观看播放| 亚洲精选视频免费看| 亚洲高清视频一区| 伊人一区二区三区| 羞羞答答国产精品www一本| 日韩黄色一级片| 欧美午夜理伦三级在线观看| 韩国女主播成人在线| 91精品国产乱| 成人精品高清在线| 国产免费成人在线视频| 黑人一区二区三区四区五区| 亚洲一区在线观看网站| 老牛影视一区二区三区| 久久se精品一区精品二区| 日韩一区二区在线看| av在线不卡观看免费观看| 国产日韩欧美麻豆| 黄色在线成人| 亚洲综合在线免费观看| 91国产免费看| 国产成人精品免费一区二区| 久久精品网站免费观看| 中文日韩在线| 日本大胆欧美人术艺术动态| 欧美精品在线一区二区| 99久久精品国产一区二区三区 | 日韩一区二区在线观看| 欧美福利一区二区三区| 亚洲美女免费视频| 一本一本久久a久久精品综合麻豆| 狠狠狠色丁香婷婷综合激情| 久久日韩粉嫩一区二区三区 | 久久只精品国产| 精品不卡一区二区三区| 日韩主播视频在线| 91精品福利在线一区二区三区 | 91麻豆精品久久久久蜜臀| 97久久超碰精品国产| 亚洲人成网站在线| 欧洲精品中文字幕| av资源站一区| 亚洲精品乱码久久久久| 欧美体内she精高潮| kk眼镜猥琐国模调教系列一区二区| 中文在线免费一区三区高中清不卡| 国产精品一区二区a| 高清成人在线观看| 亚洲精品视频在线观看免费| 在线精品视频一区二区三四| 91美女视频网站| 午夜精品久久久久久久久久久| 欧美在线三级电影| 91在线播放网址| 亚洲国产精品久久不卡毛片 | 在线观看视频一区二区欧美日韩| 成人污视频在线观看| 亚洲免费观看高清完整| 欧美日韩美女一区二区| 欧美日韩国产综合网| 日韩电影在线一区| 久久人人97超碰com| 国产精品区一区| 成人在线一区二区三区| 亚洲激情五月婷婷| 欧美日韩和欧美的一区二区| 欧美日韩亚洲一区三区 | 欧美午夜视频| 免费看欧美女人艹b| 国产无人区一区二区三区| 久久一区亚洲| 欧美久久一区| 久久99久久99精品免视看婷婷| 国产精品三级av| 欧美日韩情趣电影| 亚洲韩日在线| 国产成人超碰人人澡人人澡| 亚洲综合色视频| 2022国产精品视频| 一本色道亚洲精品aⅴ| 国产精品www.| 国产激情视频一区二区在线观看| 亚洲精品综合在线| 精品免费一区二区三区| 久久蜜桃精品| 欧美日本亚洲| 国产成人久久精品77777最新版本| 亚洲自拍偷拍欧美| 久久精品欧美一区二区三区不卡| 欧美自拍偷拍午夜视频| 狠狠色综合网| 成人国产精品免费| 石原莉奈一区二区三区在线观看| 国产女同性恋一区二区| 欧美精品在欧美一区二区少妇| 亚洲精品在线观看免费| 成人午夜av在线| 麻豆91在线观看| 一区二区三区 在线观看视频| 欧美精品一区在线观看| 在线观看区一区二| 亚洲精选在线| 午夜激情一区| 高清shemale亚洲人妖| 美国精品在线观看| 玉米视频成人免费看| 国产三级精品在线| 91精品麻豆日日躁夜夜躁| 久久久久久久久久久久久久一区 | av男人天堂一区| 狠狠色狠狠色综合| 日韩精品久久理论片| 亚洲女厕所小便bbb| 国产三级一区二区| 欧美一级视频精品观看| 久久人人超碰| 夜夜嗨av一区二区三区网站四季av| 91在线云播放| 国产精品香蕉一区二区三区| 日韩在线一区二区| 亚洲一级二级三级| 亚洲欧美日韩小说| 中文字幕第一区二区| 日韩免费电影一区| 欧美日韩一区不卡| 在线观看日韩毛片| 久久精品日韩| 一区二区三区视频在线播放| 国产精品v欧美精品v日本精品动漫| 波多野结衣在线一区| 国产成人精品aa毛片| 激情丁香综合五月| 久久成人免费电影| 蜜桃精品在线观看| 免费欧美在线视频| 日韩精彩视频在线观看| 亚洲成人免费在线观看| 一区二区三区波多野结衣在线观看| 一区在线中文字幕| 国产精品理论在线观看| 国产拍揄自揄精品视频麻豆| www国产成人| 精品精品国产高清一毛片一天堂| 91精品国产aⅴ一区二区| 欧美日本一道本| 在线欧美日韩国产| 色嗨嗨av一区二区三区| 久久久99国产精品免费| 亚洲一区观看| 久久精品二区三区| 久久国产免费| 久热精品视频| 91福利社在线观看| 日本道免费精品一区二区三区| 91国偷自产一区二区三区成为亚洲经典 | 亚洲高清中文字幕| 亚洲一卡二卡三卡四卡| 亚洲狠狠爱一区二区三区| 亚洲丰满少妇videoshd| 午夜精品爽啪视频| 日本不卡视频在线观看| 久久国产精品色| 国产精品一区二区男女羞羞无遮挡| 国产一区二区三区四区五区入口 | 亚洲va国产天堂va久久en| 亚洲午夜免费福利视频| 一区二区视频免费在线观看| 一区二区三区四区高清精品免费观看| 一区二区在线观看免费| 亚洲国产人成综合网站| 日日夜夜一区二区| 卡一卡二国产精品 | 99国产精品久久久久| 91婷婷韩国欧美一区二区| 欧美精品日本| 一区二区三区我不卡| 91久久精品www人人做人人爽| 亚洲欧洲一二三| 午夜亚洲性色视频| 一本一道久久a久久精品| 欧美性欧美巨大黑白大战| 91精品国产丝袜白色高跟鞋|