在两个或多个模块的视图之间执行合并

Perform merge between views of two or more modules

我有一个 Phalcon PHP 模块化应用程序。我正在制作一个管理界面来控制系统中应该使用哪些模块。 一个模块控制应用程序的默认界面,而其他模块添加功能。

我遇到的问题:启用另一个模块时,它可以将HTML内容添加到另一个界面控制模块。通过这种方式,我想合并两个或多个视图。我正在使用 Volt 作为模板引擎。

这在 Phalcon 中可行吗?


注意: 这是在官方 Phalcon 论坛上提出的。我在那里回答了它,它被接受了。我只是复制我的回答,这样未来的读者就可以在此处获得答案,而无需从 Whosebug 重定向。 Phalcon论坛镜像:https://forum.phalconphp.com/discussion/15891/perform-merge-between-views-of-two-or-more-modules


config.php

您需要像这样在 app/config/config.php 文件中定义您的模块;

return new \Phalcon\Config([
// ...
    'modules' => [
        'module01',
        'module02',
        ...
        'moduleN',
    ],
// ...
]);

*Controller.php

然后,在您的控制器中,您可以设置一个视图 属性 来像这样存储活动模块;

$this->view->modules_enabled = $this->di->get("config")->modules;

*.volt

最后在您的伏特文件中,只需检查模块是否在包含活动模块的数组中,如果是,使用 partials 显示视图。

{% if module01 in modules_enabled %}
   <div id="module">{{ partial("partials/module01") }}</div>
{% endif %}