【问题标题】:ZF2: own Defaults for Module based ApplicationZF2:基于模块的应用程序的自己的默认值
【发布时间】:2012-01-24 17:25:12
【问题描述】:

我想使用 Zend Framework 2(还只是 beta 2)编写一个 php 应用程序。

因为它将是几个 Web 服务的集合,所以我决定将它分成不同的模块(带有自己的数据库)。

在开始编写第一个模块之前,我想编写每个模块应该需要的代码。例如布局。每个模块使用相同的布局。这就是为什么我想在全局范围内编写它以改进单个模块的开发过程。

如何在全局范围内为每个模块提供默认值? (例如布局、插件、默认数据库模型……)

【问题讨论】:

  • 我认为你可以依赖注入它,但我不知道如何,如果可能的话。
  • 是否可以加载多个模块?如果是这样,我可以编写一个包含全局内容的主模块。
  • 如果您查看例如akrabat 的快速入门,您会看到所有模块的配置都已加载。因此,如果您有一个带有布局的“App”模块,那么您的“FancyWebservice”模块将自动使用它,除非它决定覆盖此配置。对于运送给客户,您不应该包括布局,因为他们可能希望自己使用。参考github.com/akrabat/zf2-tutorial
  • @SamuelHerzog:非常感谢! (把这个写成答案,我会接受的。)

标签: php model-view-controller zend-framework web-applications zend-framework2


【解决方案1】:

在 ZendFramework2 中所有模块的配置总是被合并。 此外,还有一个全局配置可以覆盖模块配置。 因此,包含供应商模块会带来默认配置,您可以并且应该通过全局配置覆盖。 全局配置可能由多个文件组成,便于区分要配置的模块。

我的第一个例子是article of akrabat about module configuration and overrides

另一个很好的例子是 Akrabat 的快速入门 (https://github.com/akrabat/zf2-tutorial):

  • 一个应用模块,基于 ZendSkeletonApp
  • 一个相册模块,您实际完成的部分。

在App模块中有基本路由的配置,Views和Layout都设置好了 在专辑模块中,只有专辑特定的东西(例如依赖注入)的设置,视图和路由从 App-modules 配置中使用。

您可以决定基于每个模块或全局覆盖此配置,在默认项目布局中,您的配置放置如下:

/config/application.config.php 基本配置
/config/autoload/*.config.php 可用于覆盖模块或应用程序配置(例如用于本地开发)
/module/[your-module]/config/[your-module].config.php 模块的默认配置
/vendor/[vendor-module]/config/[vendor-module].config.php 模块你加入了,但是有它的依赖注入的定义。如果它使用例如您要覆盖/config/autoload/*中的一些参数的数据库

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-18
    • 2014-06-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多