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