ZF3 - 从模块目录外部使用部分
ZF3 - using partial from outside of module directory
我正在使用我自己的库构建基于 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)
我可以包含不在 module/Application/view 内但在 vendor/myBaseScripts/partials 内的部分吗?
当然可以。但是,特此建议您确保您正在创建的模块包含默认视图。
要注册视图部分,请使用模块的配置,如下所示:
'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->partial
是一个 ViewHelper。它采用的第一个参数是要加载的部分(按名称!)。第二个参数是一个可选数组,其中包含 key/value 对数据。
要用另一个模块中的自定义部分覆盖部分部分(例如默认模块部分部分),您必须覆盖配置中 key/value 对的值。
这个模块,修改了部分,必须在 'original' 一个 之后加载。这是为了确保按照您期望的顺序覆盖配置。
假设上面的代码在您的原始模块中,您将在另一个模块中执行以下操作:
'view_manager' => [
'template_map' => [
'name/of/partial/view' => __DIR__ . '/../path/relative/to/config/file/this-is-a-custom-partial.phtml',
],
],
如你所见,名字还是一样。
编码愉快。
我正在使用我自己的库构建基于 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)
我可以包含不在 module/Application/view 内但在 vendor/myBaseScripts/partials 内的部分吗?
当然可以。但是,特此建议您确保您正在创建的模块包含默认视图。
要注册视图部分,请使用模块的配置,如下所示:
'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->partial
是一个 ViewHelper。它采用的第一个参数是要加载的部分(按名称!)。第二个参数是一个可选数组,其中包含 key/value 对数据。
要用另一个模块中的自定义部分覆盖部分部分(例如默认模块部分部分),您必须覆盖配置中 key/value 对的值。
这个模块,修改了部分,必须在 'original' 一个 之后加载。这是为了确保按照您期望的顺序覆盖配置。
假设上面的代码在您的原始模块中,您将在另一个模块中执行以下操作:
'view_manager' => [
'template_map' => [
'name/of/partial/view' => __DIR__ . '/../path/relative/to/config/file/this-is-a-custom-partial.phtml',
],
],
如你所见,名字还是一样。
编码愉快。