1

Zend 框架的发展速度非常快,我们都同意并且在尝试 Zend 框架的模块化结构时我们都感到惊讶,如果具体来说模块的引导 - 无论模块的所有引导文件都是在开始时执行的我们是否正在使用/访问该模块。据我所知,模块引导程序就像主引导程序的插件一样执行。但另一方面,我发现 ZF 的实现非常复杂,并且非常尊重设计模式。

因此,在遇到模块延迟加载/引导之前,我想对引导方面有一个客观的想法

-- 那么 ZF 中的初始模块引导是否有可靠的逻辑,或者是否应该将其更改为惰性/按需引导之类的东西?

我知道问题很含蓄,所以让我再多说一些

例如,在模块化应用程序中,我们希望每个模块都有单独的初始配置(如单独的布局),并且引导程序是“进行初始配置的地方”的范例,对吗?但是,如果我们按照 Zend 文档所说的方式进行初始化/配置,那么我们的应用程序会为每个请求加载在每个模块引导类中设置的所有初始化。(我只是一个客人,当我请求管理员引导程序时仍然如此将被执行,虽然在后台) - 这几乎是在破坏系统。

据我所知,这个想法有两种流动方式

  1. 在模块引导程序中包含仅与整个系统互补的东西(几乎看不到它可以是什么)
  2. 使用帮助 Action 插件或扩展 Bootstrap 类来改变模块引导的方式来处理引导程序的引导程序

我最初的问题是遵循第一个选项是否有任何逻辑,第二个选项会是一个不错的选择吗?

4

1 回答 1

1

是的。它基于调度过程。在引导时,您无法确定需要哪一个。模块引导程序有一个优点 - 您不需要将模块代码插入主引导程序 - 它使模块更加“独立”。

模块依赖

  • 要求
  • 选择的路线
  • 如果例如。_forward() 被调用

但是你可能想为每个模块添加你的路由,注入你自己的调度程序等。这一切都需要在创建请求对象之前完成。这就是为什么所有引导程序都在一开始就启动的原因。

在理想情况下,您的引导程序不应包含重复代码或增加任何严重的开销。您可以从其他启动的引导程序中检索资源,这样就没有数据库适配器或视图等对象的副本。

于 2010-02-24T23:01:13.337 回答