Zend Framework是一款PHP开发框架,ZF2原生支持模块的概念,任意第三方的php程序只要是遵循Zend的编码规范和代码结构,都可以变成一个Zend模块。
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开源项目一个不错的选择。
环境配置
1、首先你要确定你的PHP版本不低于5.1.4,但强烈建议使用 5.2.3 或更高版本。
2、确保你的php.ini开启了如下模块:
1)extension=php_pdo.dll
2)extension=php_pdo_mysql.dll
3、打开Apache的配置文件httpd.conf确保你已经开启如下模块:
1)LoadModule rewrite_module modules/mod_rewrite.so
2)继续查找httpd.conf文件,如果AllowOverride为None的话,请一定把None都改成all
4、设置环境变量:
如果出现“php.exe命令不存在。。。”就把php.exe目录也放到环境变量中:D:\software\wamp\bin\php\php5.3.10
5、ok啦,测试下:
6、zend framework配置输入 zf show version 显示版本信息。
7、输入zf create project f:\web\zendframe 就在我的php环境下创建了zendframe项目
8、将你下载的zend framework的library下面的zend文件拷贝到项目的library目录下。
9、恭喜你,在地址栏输入//127.0.0.1/zendframe/public显示界面,表明zend framework配置成功!
……
Zend Framework-PHP开发框架-Zend Framework下载 v2.0.0官方版本 >>本地高速下载
>>本地下载