ZF3-使用模块目录外部的部分

时间:2018-07-05 07:53:11

标签: php zend-framework3

我正在使用自己的库构建基于ZF3的应用程序,该库包含要包含在其他项目中的基本组件。库基于作曲家,因此应用程序树如下所示:

- module
-- Application
--- src
---- view
----- index.phtml (where I want to include partial from base)
- vendor
-- myBaseScripts (installed via composer)
--- partials
---- myTablePartial.phtml (partial to include)

我可以在模块/应用程序/视图内而不是在 vendor / myBaseScripts / partials 内吗?

1 个答案:

答案 0 :(得分:1)

好的。但是,建议您确保要创建的模块包含默认视图。


要注册局部视图,请使用模块的配置,如下所示:

'view_manager' => [
    'template_map' => [
        'name/of/partial/view' => __DIR__ . '/../path/relative/to/config/file/view-partial.phtml',
    ],
],

确保您的模块包含上述内容。

然后在类似的视图中使用它:

<?= $this->partial('name/of/partial/view', ['param1' => 'value1']) ?>

$this->partialViewHelper。它采用的第一个参数是要加载的部分参数(按名称!)。第二个参数是一个可选数组,其中包含数据的键/值对。


要用另一个模块中的自定义模块覆盖部分模块(例如默认模块的局部模块),必须覆盖配置中键/值对的值。

该模块(带有修改后的部分)必须在“原始”模块之后的之后加载。这是为了确保配置按您期望的顺序被覆盖。

假设上面的代码在您的原始模块中,则可以在另一个模块中进行以下操作:

'view_manager' => [
    'template_map' => [
        'name/of/partial/view' => __DIR__ . '/../path/relative/to/config/file/this-is-a-custom-partial.phtml',
    ],
],

如您所见,名称仍然相同。

快乐的编码。