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

时间:2017-04-05 11:49:07

标签: php phalcon volt modularization

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

我有问题:当另一个模块启用时,它可以将HTML内容添加到其他接口控制模块。通过这种方式,我想合并两个或多个视图。我使用Volt作为模板引擎。

Phalcon有可能吗?

1 个答案:

答案 0 :(得分:1)

注意:这是Phalcon官方论坛上的问题。我在那里回答了它并被接受了。我只是在反映我的回答,以便未来的读者可以在这里得到答案,而无需从StackOverflow重定向。 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这样

然后,在您的控制器中,您将设置一个view属性来存储活动模块,如此;

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

<强> *。伏特

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

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