search
Homephp教程php手册Zend Framework 2.0 (zf2) 正式版发布及新功能介绍

著名php开源框架 Zend Framework 经历了长达数年的开发,终于在2012年9月5日正式发布了2.0版本,下简称ZF2。时隔Zend 1.0版本的发布已经有5年之久。 php的框架一直都是百家争鸣的,但是作为php官方运维的框架, Zend Framework 在php开发者中的流行度并不高

著名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的响应速度也都是有保证的。

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Microsoft NET Framework 安装问题 错误代码 0x800c0006 修复Microsoft NET Framework 安装问题 错误代码 0x800c0006 修复May 05, 2023 pm 04:01 PM

.NETFramework4是开发人员和最终用户在Windows上运行最新版本的应用程序所必需的。但是,在下载安装.NETFramework4时,许多用户抱怨安装程序在中途停止,显示以下错误消息-“ .NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006 ”。在您的设备上安装.NETFramework4时,如果您也在体验它,那么您就来对了地方

PHP8.1发布:引入curl多个请求并发处理PHP8.1发布:引入curl多个请求并发处理Jul 08, 2023 pm 09:13 PM

PHP8.1发布:引入curl多个请求并发处理近日,PHP官方发布了最新版本的PHP8.1,其中引入了一个重要的特性:curl多个请求并发处理。这个新特性为开发者提供了一个更加高效和灵活的方式来处理多个HTTP请求,极大地提升了性能和用户体验。在以往的版本中,处理多个请求往往需要通过创建多个curl资源,并使用循环来分别发送和接收数据。这种方式虽然能够实现目

如何在 Windows 11/10 上使用 SetupDiag 识别 Windows 升级问题如何在 Windows 11/10 上使用 SetupDiag 识别 Windows 升级问题Apr 17, 2023 am 10:07 AM

每当您的Windows11或Windows10PC出现升级或更新问题时,您通常会看到一个错误代码,指示故障背后的实际原因。但是,有时,升级或更新失败可能不会显示错误代码,这时就会出现混淆。有了方便的错误代码,您就可以确切地知道问题出在哪里,因此您可以尝试修复。但是由于没有出现错误代码,因此识别问题并解决它变得极具挑战性。这会占用您大量时间来简单地找出错误背后的原因。在这种情况下,您可以尝试使用Microsoft提供的名为SetupDiag的专用工具,该工具可帮助您轻松识别错误背后的真

SCNotification 已停止工作 [修复它的 5 个步骤]SCNotification 已停止工作 [修复它的 5 个步骤]May 17, 2023 pm 09:35 PM

作为Windows用户,您很可能会在每次启动计算机时遇到SCNotification已停止工作错误。SCNotification.exe是一个微软系统通知文件,由于权限错误和点网故障等原因,每次启动PC时都会崩溃。此错误也以其问题事件名称而闻名。因此,您可能不会将其视为SCNotification已停止工作,而是将其视为错误clr20r3。在本文中,我们将探讨您需要采取的所有步骤来修复SCNotification已停止工作,以免它再次困扰您。什么是SCNotification.e

Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 将于 2022 年 4 月终止支持Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 将于 2022 年 4 月终止支持Apr 17, 2023 pm 02:25 PM

已安装Microsoft.NET版本4.5.2、4.6或4.6.1的MicrosoftWindows用户如果希望Microsoft将来通过产品更新支持该框架,则必须安装较新版本的Microsoft框架。据微软称,这三个框架都将在2022年4月26日停止支持。支持日期结束后,产品将不会收到“安全修复或技术支持”。大多数家庭设备通过Windows更新保持最新。这些设备已经安装了较新版本的框架,例如.NETFramework4.8。未自动更新的设备可能

全国首个DNA存储模型"ChatDNA"亮相发布全国首个DNA存储模型"ChatDNA"亮相发布May 29, 2023 pm 06:31 PM

5月22日消息,今天的中国日期。在浙江嘉善举办的祥符创新论坛转化医学产业高峰论坛取得了圆满成功。据ITBEAR科技资讯了解,该论坛旨在围绕精准医学及生命科学前沿热点问题展开讨论,并分享最新的诊断技术、基因测序等前沿领域的进展,以推动医学产业的健康发展。与会专家汇聚一堂,分享实践经验和创新思路。论坛期间,还举行了重磅发布和联盟签约仪式。上海人工智能研究院、祥符实验室以及转化医学国家科学中心(上海)联合发布了全国首个DNA存储领域预训练大模型——"ChatDNA"。该模型的发布将

适用于 Windows 11 的KB5012643破坏了.NET Framework 3.5应用程序适用于 Windows 11 的KB5012643破坏了.NET Framework 3.5应用程序May 09, 2023 pm 01:07 PM

自我们谈论影响安装KB5012643forWindows11的用户的新安全模式错误以来已经过去了一周。这个讨厌的问题并没有出现在微软在发布当天发布的已知问题列表中,因此让所有人都感到意外。好吧,就在您认为情况不会变得更糟的时候,微软为安装此累积更新的用户投下了另一颗炸弹。Windows11Build22000.652导致更多问题因此,这家科技公司警告Windows11用户,他们在启动和使用某些.NETFramework3.5应用程序时可能会遇到问题。听起来很熟悉?不过请不要惊

如何在Zend框架中使用ACL(Access Control List)进行权限控制如何在Zend框架中使用ACL(Access Control List)进行权限控制Jul 29, 2023 am 09:24 AM

如何在Zend框架中使用ACL(AccessControlList)进行权限控制导言:在一个Web应用程序中,权限控制是至关重要的一项功能。它可以确保用户只能访问其有权访问的页面和功能,并防止未经授权的访问。Zend框架提供了一种方便的方法来实现权限控制,即使用ACL(AccessControlList)组件。本文将介绍如何在Zend框架中使用ACL

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!