Zend Framework(ZF)是一种开源的, 面向对象的WEB应用程序开发框架,在PHP7下运行,使用MVC软件架构,授權模式採用BSD许可证[1]

Zend Framework
開發者Zend Technologies
当前版本3.0.0(2016年6月28日 (2016-06-28)
源代码库 編輯維基數據鏈接
操作系统跨平台
类型框架
许可协议BSD许可证
网站framework.zend.com

当前版本

编辑

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. ^ Introduction to Zend Framework. ZF Programmer's Reference Guide. [2009-02-12]. (原始内容存档于2009-02-11). 
  2. ^ Morgan, Oonagh. Zend Announces Industry-wide PHP Collaboration Project at its Inaugural PHP Conference. Zend Technologies. 2005-10-19 [2008-07-14]. (原始内容存档于2009-01-01). 
  3. ^ Gutmans, Andi. Zend Framework 1.0 Released!. Andi on Web & IT. 2007-07-01 [2008-07-14]. (原始内容存档于2021-04-17). 
  4. ^ Zend Framework 2.0.0 STABLE Released!. Zend Technologies. 2012-09-05 [2012-09-05]. (原始内容存档于2021-07-21). 
  5. ^ Company, Zend, a Rogue Wave. Zend Framework - Blog - Zend Framework 3 Released!. framework.zend.com. [2016-10-12]. (原始内容存档于2022-01-24). 
  6. ^ Gutmans, Andi. Zend Framework(post is too long so make sure to grab coffee). Andi on Web & IT. 2005-10-27 [2009-02-11]. (原始内容存档于2011-07-08). 
  7. ^ History of PHP and related projects. The PHP Group. [2009-02-11]. (原始内容存档于2008-07-08). 
  8. ^ LaMonica, Martin. IBM backs open-source Web software. cnet.com. 2005-02-25 [2009-02-11]. 
  9. ^ Kernel, Sean Michael. Google Data Joins PHP Zend Framework. internetnews.com. 2006-12-20 [2009-02-11]. (原始内容存档于2021-06-12). 
  10. ^ Krill, Paul. Microsoft, Zend boost PHP for Windows. infoworld.com. 2006-10-31 [2009-02-11]. (原始内容存档于2009-03-10). 
  11. ^ Potter, Mike. Adobe Contributing AMF Support to Zend Framework. The Official Flex Team Blog. 2008-07-31 [2009-02-11]. (原始内容存档于2009-02-07). 
  12. ^ StrikeIron Featured Partners. [2009-02-11]. (原始内容存档于2009-04-11). 
  13. ^ Zend Framework Requirements. ZF Programmer's Reference Guide. [2009-02-12]. (原始内容存档于2009-02-14). 
  14. ^ About Zend Framework. [2009-02-11]. (原始内容存档于2009-02-11). 
  15. ^ Zend Framework Contributor Guide. 2006-07-01 [2008-07-14]. (原始内容存档于2008-05-18). 

外部链接

编辑

指南

编辑

📚 Artikel Terkait di Wikipedia

Laravel

Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-29).  Collections - Laravel - The PHP Framework For Web Artisans

PHP框架列表

Framework是一个PHP的微框架。 CakePHP是一个开源的PHP框架,它支持MVC设计模式,其受到Ruby on Rails影响,并通过MIT许可证发行。 ClanCats(页面存档备份,存于互联网档案馆)是一个开源的PHP框架,支持HMVC模式. CodeIgniter是一套给PHP

PHP

PHP也被用于其他很多领域。 PHP最初是由勒多夫在1995年开始开发的;現在PHP的標準由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放原始碼許可協議GPL不相容。 PHP

Web应用框架

各種程式語言使用框架分類如下: Zend framework CakePHP(英语:CakePHP) Yii(英语:Yii) ThinkPHP Symfony Laravel Kohana(英语:Kohana_(framework)) Seagull(英语:Seagull_PHP_Framework) Drupal CodeIgniter

Fat-Free Framework

Fat-Free Framework是一個開源的Web框架,在2009年開始由Bong Cosca設計,使用GNU通用公共许可协议授权。源代码主要使用PHP编写。 官方網站 Github專案(页面存档备份,存于互联网档案馆) Change Log (页面存档备份,存于互联网档案馆)

Symfony

、文档生成等额外的工具来满足企业的开发过程。 Symfony 受到了 Spring Framework. 的啟發。 它使用了以下一些PHP开源项目的部分功能。 Propel (PHP) 或 Doctrine (PHP):用作对象关系映射(ORM) PDO 資料庫抽象層 PHPUnit: 單元測試框架

LAMP

Linux,操作系统 Apache,网页服务器 MariaDB或MySQL,数据库管理系统(或者数据库服务器) PHP、Perl或Python,脚本语言 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的廉价和普遍,这个组合开始流行(大

.NET框架

.NET框架(英語:.NET Framework)是由微軟開發,一個致力於敏捷軟體開發(agile software development)、快速應用開發(rapid application development)、平臺獨立性和網路透明化的軟體框架。.NET是微軟為2000年代對伺服器和桌上型軟體工程邁出的第一步。