zf2 中每个模块的 module.config.php 中的不同设置

Diffrent settings in module.config.php for every module in zf2

我有两个模块:admin 和 application 首先有:

'view_helper_config' => array(
        'flashmessenger' => array(
            'message_open_format'      => '<div%s><button data-dismiss="alert" class="close" type="button">×</button>',
            'message_separator_string' => '<br>',
            'message_close_string'     => '</div>'
        ),
    ),

秒内有:

'view_helper_config' => array(
    'flashmessenger' => array(
        'message_open_format'      => '<ul%s><li>',
        'message_separator_string' => '<li></li>',
        'message_close_string'     => '</li></ul>'
    ),
),

而且总是合并。我想在每个模块上都有不同的配置。我该怎么做?

请记住,您的 module.config.php 文件有点像级联样式表,第一个被加载,然后后续文件中的设置补充或替换前一个加载的设置文件。 module.config.php 文件按照模块在 project\config\application.config 中列出的顺序加载。换句话说,你在两个不同的文件中包含的语句相当于在同一个 module.config.php.

中一个接一个地列出它们

您的问题有多种解法:

  1. 通过扩展它并给它一个不同的名字来克隆助手,并在不同的模块中使用不同的版本。 (如果你这样做你 甚至可以在别名中设置默认的 HTML 字符串 并避免将它们设置在 module.config.php 中。
  2. 在您的视图 而不是 module.config.php 中设置 HTML 字符串。查看 documentation 以了解操作方法。
  3. 克隆您的 layout.phtml 并在其中设置字符串。上面的解决方案要求您在每个和中设置 HTML 字符串 您创建的每个视图,但文档说您可以设置 他们在任何 .phtmlEdpModuleLayouts 让你拥有 独立的、模块特定的布局;你可以创建一个不同的 每个模块的布局并在每个模块中设置您选择的 HTML 字符串 布局。
  4. 使用 CSS 类 打开和关闭 HTML 字符串。我使用 EdpModuleLayouts 以便我的管理模块的外观非常醒目 与其他模块不同,所以我已经有了替代品 CSS 个不同模块的文件。有了这些,就可以 打开和关闭 HTML 字符串。对于您的应用程序,您可以放置 相关标签中的 class=”toggleFM” 并将 CSS 设置为 display: hidden; 因此在一个模块中一定 元素被呈现并且在另一个模块中其他元素是 呈现。这是一个复杂的解决方案,但它允许您设置 module.config.php 文件中的 HTML 字符串,如果你是 想做。

编辑

此外,请查看您的分隔符字符串。您可能需要 '</li><li>' 而不是 '<li></li>',因为分隔符会关闭一个列表项并打开另一个列表项。