天天看點

PHP 的 一些 MVC 架構簡介

ThinkPHP  

ThinkPHP(FCS)是一個開源的快速、相容而且簡單的面向對象的輕量級PHP開發架構,全稱是Fast,Compatible & Simple OOP PHP Framework。FCS架構是從Java的Struts結構移植過來的中文PHP開發架構,是為了簡化企業級應用開發而誕生的,使用面向對象的開發結構和MVC模式,并且模拟實作了Struts的标簽庫,借鑒了國外一些不錯的思想,尤其是Java架構方面,是以熟悉Java的開發人員相對比較容易上手。在借鑒國外優秀思想的同時,FCS也更多地考慮了國内的應用開發需要。PHP4相容、完全支援UTF-8,以及PATHINFO支援等,更加有利于國内的主機環境和開發需要。FCS的宗旨是簡化開發、提高效率和易于擴充。

 CakePHP  

CakePHP是一個運用了諸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名設計模式的快速開發架構。該項目主要目标是提供一個可以讓各種層次的PHP開發人員快速地開發出健壯的Web應用,而又不失靈活性。

主要特性:

基于MVC架構

視圖支援Ajax

内置校驗架構

提供應用程式的基礎子產品和CRUD 代碼自動生成功能

提供處理session,request,security的元件

靈活的視圖緩存功能

面向對象

無需配置:隻要安裝好資料庫

相容PHP4和PHP5。 

 SolarPHP   Solar是一個适用于PHP5的簡單對象包與應用程式庫。換句話說,Solar是一個組合類包,元件庫,web應用開發架構。Solar為基于web的快速開發提了供一些簡單,易于組合的基礎類群組件。Solar使用的思想來自Savant模闆引擎,DB_Table對象/關系管理包和Yawp最容易的開發架構。

 Seagull   Seagull是個純OOP(面向對象程式設計)架構,可用于建立web,command line(指令行)和GUI的應用程式.它采用了BSD授權,讓PHP開發者可以更容易地整合并管理代碼源,更快速地建立複雜的應用程式。目前Seagull設計中已內建了許多比較受歡迎的PHP應用程式,例如:各式各樣的模闆引擎,測試工具,管理代碼庫工具等.如果您是個初學者,您可以将Seagull提供的許多樣本應用程式自定義或擴充成适合您所需的.如果您是中進階開發者,您可以充分利用seagull中的best practices(最優方案),标準和子產品的代碼核心在有規定的時間内建立您的應用程式.

Seagul是面向對象程式設計的強調子產品性的應用程式.架構的組成:

基本架構:架構本身由一組基本的類組成,這些類的組織依照MVC設計模式,主要處理權限,驗證,SESSION,I/O和資料庫抽象層.熟悉Struts和JSP配置的開發者會認可這種方法.

子產品:每個功能性的推廣範圍以子產品的形式出現,你的業務需求可能與架構中已存在的子產品相比對.如果有哪些子產品不存在,請要求我們,我們的開發團隊會盡力完善.如果由你的開發者建構并貢獻給seagull,這當然是更好的.

庫:大多數特殊任務的功能性來源于庫,通常都來源于PEAR,當需要更新/改進時,它可以獨立地被更新.

實體/實體管理:應用程式中的每個對象(Member,Group,Property,Document,Article等)都被描述成一個實體,開發者擁有快速原型實體的工具,是以skeleton(主幹)類可被自動地建立和更新.

 PHP on Trax   Php On Trax是一個采用MVC架構,适用于PHP5與PHP4環境,基于Ruby on Rails架構思想的web開發與持久層架構。它包含了建立依賴于資料庫的Web系統所需要做的所有事件,是Ruby on Rails架構的一個真正PHP克隆。

 Prado   點選次數:993

允許内容和表現方式分離。元件,尤其是頁面,将内容(邏輯)和表現方式分别儲存在不同的檔案中。 

 InterJinn

InterJinnTM是一個開源多層Web架構。它具有以下特點:

session管理

profile管理

運作時元件綁定

運作時屬性綁定

提供緩存機制

帶有校驗功能的Form引擎

可定制的模闆系統

國際化支援

  CodeIgniter   點選次數:1714

CodeIgniter是一個非常小,但很有前景的PHP開發架構。它提供了一個豐富的代碼庫,其中封裝了開發web應用系統常用到的一些功能。并為通路代碼庫提供簡單的接口與邏輯結構。CodeIgniter主要目的盡量精減代碼量。 

 symfony  

 symfony是一個開源的PHP Web架構。基于最佳Web開發實踐,已經有多個網站完全采用此架構開發,symfony的目的是加速Web應用的建立與維護。它的特點如下:

簡單的模闆功能

緩存管理

自定義URLs

搭建了一些基礎子產品

多語言與I18N支援

采用對象模型與MVC分離

Ajax支援

适用于企業應用開發。 

 Binarycloud  

 Binarycloud是一個PHP Web開發架構。它提供一組在開發Web應用程式時經常用到的服務,并通過提供一個子產品化的應用程式架構來改善複用能力。這個架構的核心是表現層系統(Node Tree),它主張從表現層邏輯中嚴格分離出業務邏輯。該Node Tree采用一種獨特的,對象可自由分層的設計方式。Smarty模闆引擎是預設的表現層并緊密地結合到binarycloud架構中。

 Akelos Framework  

 Akelos是一個類似于Ruby on Rails的PHP開發架構。它的主要目的是幫助程式員依據MVC模式開發基于資料庫的多語言Web應用程式。它通過約定俗成代替配置來讓你少寫代碼。此外Akelos支援URL改寫,資料庫移植,純PHP支援Unicode,代碼生成,内置XHTML校驗器,自動locale管理,Ajax檔案上傳等...

 php.MVC 

php.MVC實作了模型-視圖-控制器(Model-View-Controller:MVC)設計模式,并鼓勵應用程式基于Model2設計。 php.MVC是模仿Struts的一個PHP實作,提供Struts支援的大部分功能。

Achevo ATK  

 Achievo ATK是一個面向對象的PHP開發架構。它讓開發人員隻需關注應用邏輯,而不是編寫HTML代碼。ATK提供了一個完整的架構,隻要10行代碼就能開發出一個可用的應用程式,而其它該架構将自動為生成,并完全可自己定制。ATK 常被喻為Ruby on Rails

FastFrame  

FastFrame是一個采用MVC架構,側重面向對象的Web應用開發架構。它的目标是讓開發人員快速建構簡潔,安全,強壯的Web應用系統。FastFrame提供了一些一個Web應用系統都需要的功能:身份驗證,Action處理,錯誤處理,多語言支援,form建立,提供各類型的Menu系統等等。

Luta framework   

Luta framework是一個PHP5開發架構基于Zend Framework采用類似于Ruby on Rails的架構。 

PhpGrid  

PhpGrid是為php開發人員提供強大,開源的CRUD(添加,顯示,删除,修改)架構. 适合快速開發示範程式(Demo),CRM系統,OA系統,ERP系統,電子政務系統以及網站背景管理.

PhpGrid是以流行的xajax架構為基礎.速度快,穩定性高.完全具有ajax,跨浏覽器平台特性. 主要功能特點如下:

簡單,不需要花較多的時間去學習

自動生成CRUD(添加,顯示,删除,修改)頁面

Ajax技術,跨浏覽器平台(Fire,IE測試通過)

實時編輯表格中的資料

快速導入資料

快速導出資料

自動生成添加和修改表單,支援checkbox,select,memo等表單項

内置表單驗證功能

内置檔案上傳,友善使用

相容于各PHP模闆

容易擴充,當架構無法滿足您複雜的業務需求時,您可以輕松的擴充該架構

PHP Web開發架構—-FocusPHP

FocusPHP最早可以追溯2006年12月份,當時我還在與非網做PHP開發,我建議采用開源的OOP架構來重新架構網站,但是當時CakePHP在國内影響還不是很大,中文文檔不太齊全,加之開發組的成員對OOP及MVC還不是太熟悉,大家都覺得開源架構太複雜、太麻煩,不太适合當時的公司的門戶網站開發,想法就此終止。然而當時我很清楚基于OOP的方式采用MVC來建構WEB應用是大勢所趨的,當時基于Ruby的Rails MVC WEB開發架構已經開始火起來,于是就萌生了做一個自己的WEB開發架構的念頭,于是我買了一本《WEB開發靈活之道—應用Rails進行靈活WEB開發》,利用下班業餘時間在家裡研究适合PHP的靈活WEB架構,經過大約一周的業餘研究一個簡單的MVC WEB開發架構雛形完成了,因為在職公司的域名叫做eefocus.com,是以我将他命名FocusPHP。到2008年初公司技術決策終于決定使用基于OOP的MVC架構重構網站了,FocusPHP才正式應用到網站上,同上次一樣,我花了一些時間将架構再次修改,使之滿足公司的開發要求。遺憾的是,由于當時公司的技術開發要求,我去掉了很多的想法,就保留下了一些基本的能滿足開發的元素,相比那些開源的WEB開發架構,功能方面來說肯定是不可比拟的,但是FocusPHP提供的豐富的标準庫以及簡易的接口和邏輯結構,能使開發者更快速的進行項目開發,相比之下,更簡易更快捷,可擴充性強,你可以随意發揮。我在離開與非網之後,也用過很多開源的架構,比如thinkphp、ci架構,為了滿足項目和公司的技術需求,我還對這些架構架構進行過二次開發,進行相應的簡化和修改。2009年初我在做一個WEBGAME項目的時候,我發現開源的WEB架構要改造起來困難重重,于是我又想起了自己原來做過的一個架構,于是我又從同僚手裡拿到了FocusPHP的源代碼,經過修改後做了一個新的架構。至此FocusPHP這個概念對于我的來說已經結束了,我本想把這部分代碼删掉,但是後來想想還是留着做個紀念吧,于是就将源代碼傳到Google code…項目位址:FocusPHP