PHP架構中最喜歡的WindFramework

來源:互聯網
上載者:User

標籤:c   class   http   a   com   檔案   

題外話,

像我這樣從小到大作文打0分居多的人,寫文章,實在是沒有耐心的,抱歉。

 

儘管自己也山寨過許多PHP架構,但被山寨的對象中,最喜歡的是WindFramework.

Yii其實更好,但太大而全。

WindFramework是一個輕量級的php開源架構,以組件工廠為核心,提供了像MVC、資料持久化、視圖模板引擎等應用技術。

 

它的前端控制器,概念比較複雜。

 

Model-View-Controller(MVC)

wind架構提供了基礎的web mvc支援(參看組件包wind/web/)。

wind mvc 基於架構核心技術,提供了一種清晰的、松耦合的實現。它採用前端控制器模式,並支援強大的攔截過濾器鏈策略。使完全松耦合的方式集中化控制邏輯變的簡單。除此以外,wind mvc 還提供了像‘模板驅動’、‘請求重新導向’等特性。

目錄路徑別名與import類載入

我們可以將目錄路徑註冊到系統中,並為其定義使用別名。wind架構通過import方法載入類(只支援類載入),並提供autoload支援。通過路徑別名與import機制簡化了路徑使用、工程部署,即用即載入的模式大大提高了類載入的效率。

組件工廠機制

組件工廠機制是wind架構核心的基礎。它基於Ioc控制反轉和依賴注入的技術實現,為整個架構提供了松耦合的組件管理機制,從程式邏輯中分離出類的依賴關係和配置。組件工廠機制提供了豐富的特性支援:組件(建立、登出、擷取)管理、多生命週期、配置解析管理、代理模式、lazy-init消極式載入等。通過組件工廠機制統一併簡化了組件的開發與使用。

視圖管理,多模板引擎支援

在wind架構強大的組件機制的基礎上,視圖管理提供了多模板引擎的支援。wind viewer組件包提供了‘WindNormalViewerResolver‘、‘WindViewerResolver‘兩個視圖渲染引擎。同時也支援第三方渲染引擎例如‘smarty’等。架構預設採用‘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_DEBUGWIND_DEBUG支援多種模式:window、log、window&log。開發人員可以通過設定‘WIND_DEBUG’這個常量的值定義wind的工作模式。

國際化(i18n)

簡單的國際化支援:變數、語言模板等。

安全(security)

輸入輸出安全過濾,通過內建在相應的組件管理中,透明化了對資料安全的處理。wind架構還提供了security安全工具包例如:加密、解密、token等。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.