Zend Framework

Zend Framework(簡寫ZF)是由 Zend 公司支持開發的完全基於 PHP5 的開源PHP開發框架,可用於開發 Web 程式和服務,ZF採用 MVC(Model–View-Controller) 架構模式來分離應用程式中不同的部分方便程式的開發和維護。

簡介

Zend Framework logo Zend Framework logo

Zend Framework (ZF) 是用 PHP 5.3及更高版本 來開發 web 程式和服務的開源框架。ZF 用 100% 面向對象編碼實現。 ZF 的組件結構獨一無二,每個組件幾乎不依靠其他組件。這樣的松耦合結構可以讓開發者獨立使用組件。 我們常稱此為 “use-at-will”設計。

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基本重寫了整個底層代碼,可以看作一個全新的框架,並且帶來了很多新的特性。

第2版概況

模組化

(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組件存在並發揮作用。

社會化編程

ZF2的代碼完全託管在Github,藉助Github的優秀設計,任何人都可以輕鬆的通過fork參與ZF2的項目建設,甚至提交新的模組功能。

第1版概述

組件

ZF中的組件可以獨立使用,但如果將它們組合起來,就形成了一個強大而可擴展的web開發框架。 ZF 提供了強壯而高效的 MVC實現,易於使用的資料庫摘要和實現 HTML 表單解析、校驗和過濾的表單組件,這樣 開發者可以通過這些易用的、面向對象的接口聯合所有這些操作。其它組件如 Zend_Auth和 Zend_Acl通過通用 的證書(credential)存儲提供用戶認證和授權。還有其它實現的客戶庫來簡化訪問最流行的可用的 web 服務。 不論你的程式需要什麼,你都可能從 Zend Framework 中找到經過全面和嚴格測試的組件來使用,可以極為有效地減少開發時間。

Zend_Acl

提供輕量並靈活的訪問控制列表(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

控制器

將特定的模型和視圖結合起來,保證將正確的數據顯示到頁面上。

相關詞條

相關搜尋

熱門詞條

聯絡我們