这个问题是Zend Framework 2 related。
经过相当多的(重新)阅读和谷歌搜索后,我做得很简短:
关于ZF2应用程序,实际差异是什么 在bootstrap()和run()之间?
为什么要使用其中一个?
为什么ZF2 Skeleton使用run()而没有提及bootstrap() 任何地方
然后,当使用时一切正常时,会使用bootstrap() 运行()?
run()是否隐式调用了boostrap()?
答案 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之间最显着的差异。