Zend framework
Zend Framework(ZF)是一种开源的, 面向对象的WEB应用程序开发框架,在PHP7下运行,使用MVC软件架构,授權模式採用BSD许可证。[4]
開發者 | Zend Technologies |
---|---|
当前版本 | |
源代码库 | |
操作系统 | 跨平台 |
类型 | 框架 |
许可协议 | BSD许可证 |
网站 | framework.zend.com |
当前版本
Zend Framework当前版本为3.0系列。
历史
Zend Framework的设计构思形成于2005年,由Ruby on Rails和Spring Framework的设计思路发展而来的。2005年10月,第一次Zend年会上,Zend公司宣布了ZF的开发计划。[5]
2007年7月1日,Zend Framework 1.0发布。[6]
2012年9月5日,Zend Framework 2.0正式版发布。[7]
2016年6月28日 , Zend Framework 3.0正式發布。[8]
许可证
Zend Framework框架得到了开放源代码促进会(OSI)认可,以及BSD许可证,所有原码贡献者必须与Apache软件基金会签署一份贡献者许可协议(Contributor License Agreement,CLA),这一许可证和协议都是为了防止ZF在商业使用方面的知识产权问题。[9].
发起人和支持者
Zend Framework的发起人是Zend Technologies公司的Andi Gutmans和Zeev Suraski,PHP底层的解析引擎的重构者。[10]技术合作伙伴则包括IBM[11],Google[12], Microsoft[13], Adobe Systems[14],和StrikeIron[15].
配置要求
最新版本的Zend Framework要求PHP 5.2.4或是更高版本。Zend Framework 1.7.0前的版本要求PHP 5.1.4或是更高版本。官方提供的ZF手册推荐使用PHP 5.2.3或是更高版本,因为新版本在编译方面有许多重大安全和性能方面的改善和提高。安装PHPUnit3.0或更高版本之后才能以PHP单元测试方式运行,许多组件同样要求PHP扩展。[16]
特征
Zend Framework特征包括[17]
创建Zend Framework应用
创建一个Zend Framework应用程序可以通过zf tool工具,以命令行的方式来搭建一个典型的应用结构,然后在此基础上进行开发,这种自动化创建应用结构的方法通常也被称为“脚手架”功能。Zend Framework曾被普遍认为学习曲线较高,上手比较难,但zf tool"脚手架"大大简化了应用的创建和初始配置过程,如果配合上安装好的Zend Studio环境,使框架可以在短短数分钟之内就可以完成配置运行起来。
争议
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 (页面存档备份,存于))。
参考资料
- https://github.com/zendframework/zendframework/releases/tag/release-3.0.0; 出版日期: 2016年6月28日.
- https://framework.zend.com/blog/2016-06-28-zend-framework-3.html; 出版日期: 2016年6月28日.
- . 2024年1月8日 [2024年1月19日].
- . ZF Programmer's Reference Guide. [2009-02-12]. (原始内容存档于2009-02-11).
- Morgan, Oonagh. . Zend Technologies. 2005-10-19 [2008-07-14]. (原始内容存档于2009-01-01).
- Gutmans, Andi. . Andi on Web & IT. 2007-07-01 [2008-07-14]. (原始内容存档于2021-04-17).
- . Zend Technologies. 2012-09-05 [2012-09-05]. (原始内容存档于2021-07-21).
- Company, Zend, a Rogue Wave. . framework.zend.com. [2016-10-12]. (原始内容存档于2022-01-24).
- Gutmans, Andi. . Andi on Web & IT. 2005-10-27 [2009-02-11]. (原始内容存档于2011-07-08).
- . The PHP Group. [2009-02-11]. (原始内容存档于2008-07-08).
- LaMonica, Martin. . cnet.com. 2005-02-25 [2009-02-11].
- Kernel, Sean Michael. . internetnews.com. 2006-12-20 [2009-02-11]. (原始内容存档于2021-06-12).
- Krill, Paul. . infoworld.com. 2006-10-31 [2009-02-11]. (原始内容存档于2009-03-10).
- Potter, Mike. . The Official Flex Team Blog. 2008-07-31 [2009-02-11]. (原始内容存档于2009-02-07).
- . [2009-02-11]. (原始内容存档于2009-04-11).
- . ZF Programmer's Reference Guide. [2009-02-12]. (原始内容存档于2009-02-14).
- . [2009-02-11]. (原始内容存档于2009-02-11).
- . 2006-07-01 [2008-07-14]. (原始内容存档于2008-05-18).
外部链接
指南
- Rob Allen's popular tutorial (页面存档备份,存于)
- Lyndon Baptiste's tutorial
- Official ZF Quickstart
- Examples notes
- Zend Framework手册