Zend Framework
Zend公司開發的開源PHP框架
Zend Framework(簡寫ZF)是由 Zend 公司支持開發的完全基於 PHP5 的開源PHP開發框架,可用於開發 Web 程序和服務,ZF採用MVC(Model–View-Controller) 架構模式來分離應用程序中不同的部分方便程序的開發和維護。
Zend Framework logo
Zend Framework 項目的主要贊助者是 Zend Technologies,但許多 其它公司也貢獻了組件或重大功能。例如 Google、 Microsoft和 StrikeIron 作為夥伴提供了 web 服務介面和其它 希望給 Zend Framework 開發者使用的技術。
沒有活躍的 ZF 社區,Zend Framework 就不能交付和支持所有這些功能。社區成員包括貢獻者都可以在這些地方找到: mailing lists, IRC channels 和其它論壇。無論你有什麼關於 ZF 的問題,在社區里總能找到答案。
Zend Framework經歷了長達數年的開發,終於在2012年9月5日正式發布了Zend Framework 2,簡稱ZF2。時隔1.0版本的發布已經有5年之久。新的ZF2基本重寫了整個底層代碼,可以看作一個全新的框架,並且帶來了很多新的特性。
(ModuleManager)
比起ZF1來說,ZF2原生支持模塊的概念,任意第三方php程序,只要遵循Zend的編碼規範和代碼結構,都可以變成一個Zend模塊。
(EventManager)
傳統程序中,代碼都是按線性順序執行的,所以開發中往往很難將一些功能獨立為一個組件或模塊。
事件驅動,或者也可以叫鉤子(Hook),改變了普通框架MVC流程化的運行方式,應用了事件驅動之後,程序將呈現“註冊事件” => “觸發事件”的跳躍式運行,可以在不影響原有程序代碼的,很容易的在任意位置加入新的業務邏輯,讓項目的開發變得極為靈活。
(ServiceManager)
服務管理器的概念來自於"服務定位模式(Service locator pattern)"的編程思想。這種思想提倡將程序中的每一個獨立功能提取出來作為一個“服務”,每一個服務都是獨立可喚醒的,只有服務被調用時,服務相關的程序才會啟動。
(Di Dependency Injection)
依賴注入廣泛應用於Java的主流框架中,可以很好的解除大型應用中的耦合。ZF2引入Di也經過了反覆的考量和權衡,即使進入beta階段,Di仍然一度作為ZF2的基本實現方案,整個Mvc的配置基於Di。最終為了避免陷入Di可能造成的元數據式編程泥潭(Metaprogramming),Di只是作為ZF2的底層實現,上層加入了ServiceManager。普通開發者在使用ZF2的過程中不需要接觸到Di的層面。不過這並不妨礙DI作為一個優秀的php組件存在併發揮作用。
ZF中的組件可以獨立使用,但如果將它們組合起來,就形成了一個強大而可擴展的web開發框架。 ZF 提供了強壯而高效的 MVC實現,易於使用的資料庫摘要和實現 HTML 表單解析、校驗和過濾的表單組件,這樣 開發者可以通過這些易用的、面向對象的介面聯合所有這些操作。其它組件如 Zend_Auth和 Zend_Acl通過通用 的證書(credential)存儲提供用戶認證和授權。還有其它實現的客戶庫來簡化訪問最流行的可用的 web 服務。不論你的程序需要什麼,你都可能從 Zend Framework 中找到經過全面和嚴格測試的組件來使用,可以極為有效地減少開發時間。
提供輕量並靈活的訪問控制列表(ACL,AccessControlList)功能和許可權管理
Zend_Amf
Zend_Auth
主要用於認證,如用戶註冊,登錄
Zend_Cache
為應用程序提供緩存服務
Zend_Config
簡化應用程序中配置數據的使用
Zend_Console_Getopt
幫助命令行程序解析它們的選項和參數
Zend_Controller
ZendFramework的MVC體系的核心部分
Zend_Currency
通用的貨幣處理方式,根據不同的地區,使用不同的貨幣格式
Zend_Date
處理日期
Zend_Db
提供基於PDO的資料庫操作方法
Zend_Debug
用於調試程序中表達式或變數的信息
Zend_Exception
ZendFramework中的異常處理類,ZendFramework拋出的所有異常都必須是它的子類的對象
Zend_Feed
提供對RSS和AtomFeed的處理功能
Zend_Filter
提供了一系列普遍使用的數據過濾器,同時也提供了一個簡單的過濾器機制,使多個過濾器以用戶定義的順序對一個單一的數據進行過濾
Zend_Form
結合其它組件來創建和處理表單元素
Zend_Gdata
Gdata是GoogleData的縮寫,Zend_Gdata提供了訪問和處理GoogleAPI的功能
Zend_Layout
實現經典的兩步視圖模型
Zend_Ldap
提供對LDAP(輕量級目錄訪問協議)授權的基本支持
Zend_Loader
提供動態載入文件和類功能
Zend_Locale
本地化
Zend_Log
提供日誌記錄功能,支持多個日誌後端
Zend_Mail
提供郵件發送功能
Zend_Measure
提供單位換算轉換功能
Zend_Memory
Zend_Memory組件用於在一個受限制的內存環境下管理數據
Zend Framework 是用於 PHP 開發 Web 應用程序和 Web Service 程序的高品質開源框架。
利用 PHP 自身特性,Zend Framework 有很高的易用性和強大的功能。它提供了先進、健壯和安全的開發網站的解決方案。
代碼完全採用PHP5 面向對象編寫;豐富完善的組件支持;良好的 Ajax 支持;
模塊化的結構設計,易於擴展;完善的文檔資料;靈活的架構設計;
MVC是提高程序的可維護性的方法:將這個程序代碼分為MVC三個部分
關心的是欲顯示的數據細節。關注的應用程序的業務邏輯部分,關注的是如何使用資料庫來讀取和保存數據。
關心的是用戶顯示的部分,它通常是HTML
將特定的模型和視圖結合起來,保證將正確的數據顯示到頁面上。