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