今日,知名互聯(lián)網(wǎng)產(chǎn)品與服務(wù)提供商phpwind正式推出通用的php開源技術(shù)框架‘windframework’?;趐hpwind多年專注php開發(fā)積累沉淀下來的技術(shù)和解決方案,windframework將為未來推出的phpwind下一代社區(qū)產(chǎn)品提供統(tǒng)一的應(yīng)用開發(fā)架構(gòu)服務(wù)。而作為一款通用型的框架,windframework也將為開發(fā)者提供更為簡單、安全、擴展性良好的應(yīng)用開發(fā)支持。
phpwind旗下社區(qū)建站通用型程序phpwind,作為一款廣受站長歡迎的產(chǎn)品,在國內(nèi)擁有廣泛的社區(qū)網(wǎng)站用戶,而通過此次底層開發(fā)框架的統(tǒng)一和重構(gòu),將能為廣大開發(fā)者提供輕盈,簡潔的開發(fā)框架,同時提供給基于此框架開發(fā)產(chǎn)品以龐大的用戶基礎(chǔ)。
什么是windframework?
windframework是一個輕量級的php開源框架,以組件工廠為核心,提供了像MVC、數(shù)據(jù)持久化、視圖模板引擎等應(yīng)用技術(shù)。此外windframework采取了一種組件化的開發(fā)模式。雖然目前的組件庫還不算豐富健壯,但是基于這種開發(fā)模式,使組件的擴展變得非常的容易。windframework擁有一個強健的內(nèi)核,它實現(xiàn)了基于配置的Ioc控制反轉(zhuǎn)技術(shù)。開發(fā)者只需要簡單的配置,就可以實現(xiàn)類的依賴注入,實現(xiàn)了類與類的完全松耦合。
Windframework由phpwind社區(qū)開發(fā)團隊自主研發(fā),2010年10月份開始投入,目前為止已經(jīng)內(nèi)部發(fā)行了四個版 本。它源自phpwind社區(qū)產(chǎn)品的一次名為‘鵲橋’的重構(gòu)計劃。意在重新定義phpwind的架構(gòu)分層以及開發(fā)模式,使其看起來更清晰,更易于擴展和二次開發(fā)。
據(jù)項目負責(zé)人吳瓊介紹,項目最開始對windframework 的定位和設(shè)想是希望提煉phpwind社區(qū)產(chǎn)品的底層實現(xiàn)并對其進行統(tǒng)一化部署;也是對phpwind產(chǎn)品中多年積累沉淀下來的技術(shù)和解決方案進行整理重構(gòu),使其成為通用的標準化的工具/組件庫。后來windframework逐漸的發(fā)展成為了一個通用型的php框架,一個獨立的框架產(chǎn)品。它的定位和職責(zé)也越來越清晰:支撐了整個phpwind社區(qū)應(yīng)用的運行,為它定義了統(tǒng)一規(guī)范的MVC流程,并提供強大的路由和視圖渲染能力,靈活的應(yīng)用部署方案等。windframework服務(wù)于phpwind社區(qū)產(chǎn)品,但也獨立于phpwind社區(qū)產(chǎn)品。
windfrmaework的特點
作為一個通用的php框架,windframework在公司內(nèi)部已經(jīng)發(fā)行至第四版并推廣使用,此次正式對外發(fā)布的版本,已經(jīng)有了多項的優(yōu)化和BUG修復(fù)。有很多新的項目基于windframework框架進行開發(fā),包括即將推出的phpwind最新社區(qū)版本和社區(qū)電子商務(wù)平臺,都基于windframework框架基礎(chǔ)。在這個框架基礎(chǔ)上,開發(fā)者進行二次開發(fā)和模板制作,將會更便捷和快速,而通過應(yīng)用中心phpwind將為開發(fā)者提供更豐富更實用的應(yīng)用、模板庫。
Model-View-Controller(MVC)
wind框架提供了基礎(chǔ)的web mvc支持(參看組件包wind/web/)。wind mvc 基于框架核心技術(shù),提供了一種清晰的、松耦合的實現(xiàn)。它采用前端控制器模式,并支持強大的攔截過濾器鏈策略。使完全松耦合的方式集中化控制邏輯變的簡單。除此以外,wind mvc 還提供了像‘模板驅(qū)動’、‘請求重定向’等特性。
目錄路徑別名與import類加載
wind框架可以將目錄路徑注冊到系統(tǒng)中,并為其定義使用別名。wind框架通過import方法加載類(只支持類加載),并提供autoload支持。通過路徑別名與import機制簡化了路徑使用、工程部署,即用即加載的模式大大提高了類加載的效率。
組件工廠機制
組件工廠機制是wind框架核心的基礎(chǔ)。它基于Ioc控制反轉(zhuǎn)和依賴注入的技術(shù)實現(xiàn),為整個框架提供了松耦合的組件管理機制,從程序邏輯中分離出類的依賴關(guān)系和配置。組件工廠機制提供了豐富的特性支持:組件(創(chuàng)建、注銷、獲取)管理、多生命周期、配置解析管理、代理模式、lazy-init延遲加載等。通過組件工廠機制統(tǒng)一并簡化了組件的開發(fā)與使用。
視圖管理,多模板引擎支持
在wind框架強大的組件機制的基礎(chǔ)上,視圖管理提供了多模板引擎的支持。wind viewer組件包提供了'WindNormalViewerResolver'、'WindViewerResolver'兩個視圖渲染引擎。同時也支持第三方渲染引擎例如‘smarty’等??蚣苣J采用'WindViewerResolver'進行視圖渲染,該視圖渲染器支持模板編譯和標簽擴展。
主題與皮膚(themes)
wind框架中支持簡單的主題與皮膚管理,通過為視圖設(shè)置主題,應(yīng)用可以輕松的實現(xiàn)多風(fēng)格的支持與切換。
模板視圖的布局管理(layout)
布局管理是通過為應(yīng)用定義布局模板文件,來實現(xiàn)可以模板的統(tǒng)一布局。 wind框架支持為整個應(yīng)用定義一種布局模板,也支持為每個操作定義不同的布局模板。默認情況系統(tǒng)不開啟布局管理的,可以通過設(shè)置布局文件開啟布局管理。
模板標簽支持
wind框架默認采用了‘WindViewerResolver’視圖渲染器,這個視圖渲染器支持模板編譯以及基于配置的自定義標簽擴展。開發(fā)者可以根據(jù)需求,自定義模板標簽。wind框架默認實現(xiàn)了幾種常用標簽:action、echo、lang、template、token等。
數(shù)據(jù)輸出安全過濾及數(shù)據(jù)格式化支持
基于模板標簽體系,wind框架實現(xiàn)了強大的數(shù)據(jù)輸出支持:安全輸出過濾、數(shù)據(jù)格式化等。基于這個特性,開發(fā)者可以方便的在頁面以想要的格式進行變量輸出,而無需擔(dān)心安全問題以及數(shù)據(jù)格式化問題。
Cache
wind框架默認提供了cache組件和cache支持。cache組件采用了面向接口的組件設(shè)計思路,為cache使用者提供標準的cache接口定義,以及多種cache方案的實現(xiàn)。
DB
簡單高效的數(shù)據(jù)持久層方案‘WindConnection’,這是一個基于PDO的數(shù)據(jù)持久化解決方案。它支持‘WindConnection’簡單鏈接、‘WindConnectionManager’分布式鏈接管理兩種鏈接模式。兩種方案可以實現(xiàn)無縫的切換。
請求的預(yù)處理與后處理(filter chain)
wind框架采用了攔截過濾器模式,對請求的預(yù)處理和后處理進行了攔截和策略部署支持。開發(fā)者可以基于配置很方便的使用該特性在請求的預(yù)處理或后處理位置添加、刪除、修改控制邏輯代碼。
路由協(xié)議鏈,多路由協(xié)議支持
路由是wind mvc模式中的重要組件,wind框架提供了路由支持,它采用過濾鏈的模式來實現(xiàn),一個路由器可以掛載多種路由協(xié)議。程序會根據(jù)掛載的順序,依次去加載路由協(xié)議,直到找到可以處理當(dāng)前請求的路由協(xié)議。
Form表單對象&驗證
web mvc 默認提供了對表單處理的支持。開發(fā)者可以為一次請求創(chuàng)建一個表單對象,系統(tǒng)將會在處理具體的操作前初始化這個表單對象以及完成表單驗證等工作。開發(fā)者無需在代碼邏輯里面操作大量的表單數(shù)據(jù)的賦值驗證,簡化了開發(fā)。
ErrorHandler自定義錯誤處理句柄
自定義錯誤句柄是web mvc提供的又一個特性支持。wind框架默認為mvc提供了錯誤處理句柄‘WindErrorHandler’,默認的錯誤頁面指向‘web/view’。開發(fā)者可以通過應(yīng)用配置來指向自定義的錯誤處理句柄,可以為每一個module定義‘ErrorHandler’,也可以為每一個action自定義‘ErrorHandler’。wind框架在自定義配置上提供了強大且靈活的支持。
異常體系與Logger日志
兩種基本的異常類型:‘WindFinalException’、‘WindException’。前者是終極異常,拋出該類異常表示不希望異常被系統(tǒng)處理而直接拋出;后者是通用異常類型,大部分自定義異常都需要繼承該異常類型,該異常會被系統(tǒng)的錯誤體系處理。Logger組件,通過調(diào)用Logger組件開發(fā)者可以很方便的輸出log信息,支持分類、分組輸出。目前只支持本地化的文件log記錄。
多種開發(fā)模式支持WIND_DEBUG
WIND_DEBUG支持多種模式:window、log、window&log。開發(fā)者可以通過設(shè)置‘WIND_DEBUG’這個常量的值定義wind的工作模式。
國際化(i18n)
簡單的國際化支持:變量、語言模板等。
安全(security)
輸入輸出安全過濾,通過內(nèi)置在相應(yīng)的組件管理中,透明化了對數(shù)據(jù)安全的處理。wind框架還提供了security安全工具包例如:加密、解密、token等。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!