著名php开源框架Zend Framework经历了长达数年的开发,终于在2012年9月5日正式发布了2.0版本,下简称ZF2。时隔Zend 1.0版本的发布已经有5年之久。php的框架一直都是百家争鸣的,但是作为php官方运维的框架,Zend Framework在php开发者中的流行度并不高。其一是由于Zend Framework主要面向大型应用,对代码规范以及程序结构有严格的规定,入门门槛较高。另一方面还是因为Zend Framework整体的执行效率偏低,略显笨重。
所以Zend小组本次可谓痛定思痛,ZF2并不像其他框架只是修修补补的更新,而是完全重写了ZF1的所有代码,主打的口号就是“高性能”。
来看一看ZF2都带开了哪些新的特性:
1. 模块化(ModuleManager)
比起ZF1来说,ZF2原生支持模块的概念,任意第三方php程序,只要遵循Zend的编码规范和代码结构,都可以变成一个Zend模块。目前已经有一批试验阶段的模块出炉(参看ZF2 Modules)。 其中不乏像Doctrine ORM这样优秀的项目。
可以预见的是,随着ZF2的慢慢成熟,越来越多可以选择的模块将大量涌现,可能未来基于ZF2的项目开发,会像搭积木一样轻松简单。
2. 事件驱动(EventManager)
传统程序中,代码都是按线性顺序执行的,所以开发中往往很难将一些功能独立为一个组件或模块。
事件驱动,或者也可以叫钩子(Hook),改变了普通程序流程化的运行方式,应用了事件驱动之后,程序将呈现“注册事件” => “触发事件”的跳跃式运行,可以在不影响原有程序代码的,很容易的在任意位置加入新的业务逻辑,让项目的开发变得极为灵活。
3. 服务管理器(ServiceManager)
服务管理器的概念来自于"服务定位模式(Service locator pattern)"的编程思想。这种思想提倡将程序中的每一个独立功能提取出来作为一个“服务”,每一个服务都是独立可唤醒的,只有服务被调用时,服务相关的程序才会启动。
这也就是ZF2性能提升的秘密所在,ZF2的MVC启动流程中无处不体现ServiceLocator的思想,功能模块的调用极为“吝啬”,想必会给以前对Zend性能有意见的开发者一个大大的惊喜。
4. 依赖注入(Di Dependency Injection)
依赖注入广泛应用于Java的主流框架中,可以很好的解除大型应用中的耦合。ZF2引入Di也经过了反复的考量和权衡,即使进入beta阶段,Di仍然一度作为ZF2的基本实现方案,整个Mvc的配置基于Di。最终为了避免陷入Di可能造成的元数据式编程泥潭(Metaprogramming), Di只是作为ZF2的底层实现,上层加入了ServiceManager。普通开发者在使用ZF2的过程中不需要接触到Di的层面。不过这并不妨碍DI作为一个优秀的php组件存在并发挥作用。
5. 社会化编程
ZF2的代码完全托管在Github,借助Github的优秀设计,任何人都可以轻松的通过fork参与ZF2的项目建设,甚至提交新的模块功能。笔者AlloVince也帮助Zend小组修复了一些BUG,发现Zend小组响应非常快(从没有超过24小时),对反馈的意见也会花时间认真解答。所以参与ZF2项目是参与php开源项目一个不错的选择。
总结
正如ZF2发布信息中写到的,没有哪个框架是完美的,ZF2也不例外。所以作为开发者要做的,不应该是纠结于哪个框架好哪个框架不好这种永远也得不到结论的问题,而是针对不同的项目选择合适的框架。
在现阶段,开发大中型php应用,特别是商业应用和企业应用,ZF2是一个非常不错的选择,因为ZF2有严格代码规范,非常适合团队开发。而ZF2作为Zend官方的支持产品,整体的可靠性和BUG的响应速度也都是有保证的。
相关资源
最后对于有兴趣的朋友,欢迎访问ZF2官方网站尝鲜。
分享到:
相关推荐
2. 安装Zend Framework 2.0:安装部分会提供如何下载、部署以及配置Zend Framework 2.0的详细步骤,包括系统要求和依赖关系,对于新手来说是了解和上手框架的基础。 3. Zend Framework 2.0快速起步:这一部分会指导...
在Zend Framework 2.0中,应用被划分为多个模块,每个模块都可以独立处理特定的功能。这种设计方式允许开发者将复杂的应用拆分为更小、更易管理的部分,提高代码的可重用性和可维护性。通过配置模块,可以轻松地添加...
zend framework 2.0 刚出来不久,很多朋友以前用的是1.** 的,现在2.0 基本上都不一样了,我在这里完全配置好了,下载就直接可以跑,包括库文件我也放好了,主要是为了方便新人学习之用。 当然官方也有好多模块下载...
Zend Framework 2.0 流程图 稀有物,自己用过。
最新整理的 zendframework2 中文手册 2014年3月整理
Zend Framework 2.0 by Example – PDF Books
Zend Framework 2 官方教程汉化版
Whether you are learning Zend framework from scratch or looking to sharpen up your skills from previous versions, Zend Framework 2 Application Development will help you to harness the power of Zend ...
文章旨在介绍 Zend Framework 2 中的设计模式,包括命名空间和自动加载、异常处理、配置、插件系统、调度以及控制反转等关键概念,并会深入探讨 Zend Framework 1.X 版本的发展历程和 Zend Framework 2.0 版本中对...
通常,描述部分会提供更多的详细信息,如发布日期、更新内容或新功能,但由于这里只给出了相同的信息,我们可以推断出这可能是一个简单的版本标识,没有额外的详细描述。 **标签解析:** "ZendFramework" 标签明确...
2. **User Guide**:用户指南,介绍如何使用 Zend Framework 构建应用。 3. **Reference Guide**:详尽的 API 参考,包括类、方法、常量等。 4. **Release Notes**:版本更新日志,记录每个版本的改进和新增功能。 ...
Zend Framework 2(ZF2)是一个面向对象的、模块化且高性能的PHP开发框架,用于构建Web应用程序和服务。本示例“album”是ZF2官方提供的一个基础教程项目,旨在帮助开发者快速理解和学习如何在ZF2中进行实际的开发...
描述提到"zend framework zendframework manual 手册,Zend Framework手册 中文版,有一部分还没有汉化",这意味着虽然该手册是中文版本,但可能并非全部内容都已翻译完成,部分原文可能是英文状态。 **Zend ...
### Zend Framework 2 基础教程 #### 一、简介与预备知识 在本教程中,我们将深入了解如何使用 PHP 的 Zend Framework 2 (ZF2) 构建一个简单的数据库驱动应用。通过遵循 Model-View-Controller (MVC) 设计模式,...
Zend Framework (简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。
Table of Contents •Introduction to Zend Framework •Overview •Installation •Learning Zend Framework •Zend Framework Quick Start •Autoloading in Zend Framework •Plugins in Zend Framework •...
**Zend Framework 2.0.0 beta:PHP开发的新里程碑** Zend Framework,由 Zend ...通过这个beta版本,开发者有机会提前体验和测试新框架,以便在正式版本发布后能更好地适应和利用Zend Framework 2.0的强大能力。