ZF2:在应用程序级别bootstrap()和run()之间有什么区别?

时间:2013-03-13 08:42:08

标签: php zend-framework2 zend-framework-mvc

这个问题是Zend Framework 2 related

经过相当多的(重新)阅读和谷歌搜索后,我做得很简短:

  • 关于ZF2应用程序,实际差异是什么 在bootstrap()和run()之间

  • 为什么要使用其中一个?

  • 为什么ZF2 Skeleton使用run()而没有提及bootstrap() 任何地方

  • 然后,当使用时一切正常时,会使用bootstrap() 运行()?

  • run()是否隐式调用了boostrap()?

2 个答案:

答案 0 :(得分:6)

我不确定为什么你想知道这个深度的细节。如果改变,差异并不会真正影响。

关于ZF2应用程序,bootstrap()和run()之间的实际区别是什么?

bootstrap()是一个独立的类构造。 run()是Application类的一部分。

为什么要使用其中一个?

Bootstrap在其他任何地方运行。它还初始化各种类的init函数(不是抽象的)。之后运行运行。换句话说,Bootstrap将填充并加载枪,Run就像拉动扳机一样。

为什么ZF2 Skeleton在没有提及bootstrap()的地方使用run()?

Skeleton是一个基础骨架应用程序,在已经调用框架的引导程序之后调用它!

那么,当使用run()时,如果一切正常,那么会使用bootstrap()吗?

不,正如我所说,Bootstrap就像加载枪一样,Run就像拉动扳机一样。如果您无需加载任何内容,则无法运行任何内容。如果没有隐式调用,则运行调用Bootstrap。

run()是否隐式调用boostrap()?

理想情况下,它应该。

答案 1 :(得分:1)

是的,在运行Mvc之前,run()调用bootstrap()。然而,区别在于ZF2具有事件驱动架构,并且不再需要在引导程序文件中准备引导程序。现在每个模块都可以为事件提供监听器 - 在bootstrap的情况下,事件是“bootstrap”或方法onBootstrap()。

This article可以向您介绍ZF1和ZF2之间最显着的差异。