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