Zend framework

出自Local Chinese Wikipedia
(重新導向自Zend Framework
跳至導覽 跳至搜尋

package.lua第80行Lua錯誤:module 'Module:Category handler/data' not found package.lua第80行Lua錯誤:module 'Module:CGroup/core' not found

頁面Module:Infobox/styles.css沒有內容。

Zend Framework
腳本錯誤:沒有「InfoboxImage」這個模塊。
腳本錯誤:沒有「InfoboxImageVariant」這個模塊。
開發者Zend Technologies
當前版本3.0.0(2016年6月28日 (2016-06-28)
原始碼庫頁面Template:Plainlist/styles.css沒有內容。Template:EditAtWikidata
引擎頁面Template:Plainlist/styles.css沒有內容。
    腳本錯誤:沒有「Wd」這個模塊。
Template:EditAtWikidata
作業系統跨平台
類型框架
許可協議BSD許可證
網站framework.zend.com
腳本錯誤:沒有「Template wrapper」這個模塊。

腳本錯誤:沒有「Check for unknown parameters」這個模塊。

Zend Framework(ZF)是一種開源的, 面向對象的WEB應用程式開發框架,在PHP7下運行,使用MVC軟體架構,授權模式採用BSD許可證[1]

當前版本[編輯]

Zend Framework當前版本為3.0系列。

歷史[編輯]

Zend Framework的設計構思形成於2005年,由Ruby on RailsSpring Framework的設計思路發展而來的。2005年10月,第一次Zend年會上,Zend公司宣布了Zend Framework的開發計劃。[2]

2007年7月1日,Zend Framework 1.0發布。[3]

2012年9月5日,Zend Framework 2.0正式版發布。[4]

2016年6月28日 , Zend Framework 3.0正式發布。[5]

許可證[編輯]

Zend Framework框架得到了BSD許可證以及開放原始碼促進會(OSI)認可,所有原碼貢獻者必須與Apache軟體基金會簽署一份貢獻者許可協議(Contributor License Agreement,CLA),這一許可證和協議都是為了防止ZF在商業使用方面的智慧財產權問題。[6].

發起人和技術合作夥伴[編輯]

Zend Framework的發起人是Zend Technologies公司的Andi GutmansZeev Suraski,PHP底層的解析引擎的重構者。[7]技術合作夥伴則包括IBM[8]Google[9], Microsoft[10], Adobe Systems[11],和StrikeIron[12].

配置版本要求[編輯]

最新版本的Zend Framework要求PHP 5.2.4或是更高版本。Zend Framework 1.7.0前的版本要求PHP 5.1.4或是更高版本。官方提供的ZF手冊推薦使用PHP 5.2.3或是更高版本,因為新版本在編譯方面有許多重大安全和性能方面的改善和提高。安裝PHPUnit3.0或更高版本之後才能以PHP單元測試方式運行,許多組件同樣要求PHP擴展。[13]

特徵[編輯]

Zend Framework特徵包括[14]

創建Zend Framework應用[編輯]

創建一個Zend Framework應用程式可以通過zf tool工具,以命令行的方式來搭建一個典型的應用結構,然後在此基礎上進行開發,這種自動化創建應用結構的方法通常也被稱為「腳手架」功能。Zend Framework曾被普遍認為學習曲線較高,上手比較難,但zf tool"腳手架"大大簡化了應用的創建和初始配置過程,如果配合上安裝好的Zend Studio環境,使框架可以在短短數分鐘之內就可以完成配置運行起來。

代碼、文件的測試標準[編輯]

所有貢獻的代碼,在加入到發行版本之前,都必須先通過ZF公司制訂的嚴格的測試標準。所有代碼必須符合ZF代碼標準,單元測試達到80%以上的的測試覆蓋率。[15]

爭議[編輯]

Zend Framework的早期版本,類別的成員函數定義與它上面寫的註解在資料型態根本對不起來,導致在Eclipse IDE for PHP Developers會瘋狂出現一堆【cannot be resolved to a type】的錯誤訊息,需手動進專案的設定把【Undefined type】改為警告。

和其他大型Web框架類似,Zend Framework有一個非常龐大的前端控制器(Front Controller)。但由於PHP運行時環境的特殊性(每次請求都是獨立的上下文),這個前端控制器不得不在每次請求被重新初始化一次。這帶來了非常大的性能開銷,被認為是Zend Framework的性能瓶頸所在。同時由於前端控制器模式和PHP的格格不入,許多人甚至認為PHP不適宜使用大型框架。類似的還有Zend_Db獲取資料庫中表的結構信息,也是每次請求都重複進行的操作。事實上,Zend_Db是可以緩存表結構的(通過Memcached、Apc一類的外部緩存器)。但前端控制器設計的複雜確實不是緩存可以解決的。這並不說明Zend Framework設計有問題,而是說明並不是所有的項目、應用都適合使用Zend Framework,要靠項目決策者針對自身情況權衡。

模仿[編輯]

Zend Framework本身的結構很大程度的模仿了Ruby on Rails,但又做了足夠的改動使其適應PHP的特點。所以很多PHP框架都或多或少的借鑑、參考了Zend Framework。由於不滿Zend Framework中前端控制器重複初始化帶來的不必要開銷,甚至有開發者用C/C++ 寫PHP擴展的方式,重新實現了Zend Framework,使前端控制器只需要全局初始化一次(Yaf Framework頁面存檔備份,存於網際網路檔案館)及Phalcon PHP頁面存檔備份,存於網際網路檔案館))。

參看[編輯]

參考資料[編輯]

  1. 腳本錯誤:沒有「citation/CS1」這個模塊。
  2. 腳本錯誤:沒有「citation/CS1」這個模塊。
  3. 腳本錯誤:沒有「citation/CS1」這個模塊。
  4. 腳本錯誤:沒有「citation/CS1」這個模塊。
  5. 腳本錯誤:沒有「citation/CS1」這個模塊。
  6. 腳本錯誤:沒有「citation/CS1」這個模塊。
  7. 腳本錯誤:沒有「citation/CS1」這個模塊。
  8. 腳本錯誤:沒有「citation/CS1」這個模塊。
  9. 腳本錯誤:沒有「citation/CS1」這個模塊。
  10. 腳本錯誤:沒有「citation/CS1」這個模塊。
  11. 腳本錯誤:沒有「citation/CS1」這個模塊。
  12. 腳本錯誤:沒有「citation/CS1」這個模塊。
  13. 腳本錯誤:沒有「citation/CS1」這個模塊。
  14. 腳本錯誤:沒有「citation/CS1」這個模塊。
  15. 腳本錯誤:沒有「citation/CS1」這個模塊。

外部連結[編輯]

指南[編輯]

Template:Application frameworks

package.lua第80行Lua錯誤:module 'Module:Authority control/config' not found腳本錯誤:沒有「Check for unknown parameters」這個模塊。