zf2解析模块视图路径

时间:2012-04-20 14:18:29

标签: php model-view-controller dependency-injection zend-framework2

从使用beta3的骨架应用程序开始,您将如何解析名为Foo的新模块的视图路径?

我已将下面的内容添加到di配置中,现在两个模块操作都会渲染Foo的视图。

'Zend\View\Resolver\TemplatePathStack' => array(
    'parameters' => array(
        'paths'  => array(
            'foo' => __DIR__ . '/../view',
        ),
    ),
),

我希望Application\Controller\IndexController::indexAction()能够在应用程序中呈现视图,并期望Foo\Controller\IndexController::indexAction()呈现Foo的视图。

3 个答案:

答案 0 :(得分:5)

请注意,这样的问题有助于形成稳定框架的方向。 :)

我一直在想的一个想法是将模块用作视图脚本解析的一部分。现在,默认使用的是" /&#34 ;;我的建议是使用" //",因为这有助于防止模块之间的命名冲突;如果您使用模板映射,它还可以更加简单地理解您要覆盖的视图脚本。

您现在可以使用此方法,但需要在从控制器返回的视图模型上手动设置模板。

答案 1 :(得分:2)

这在ZF2中当前不起作用,因为在解析视图脚本时没有考虑名称空间的概念。目前正在讨论如何最好地解决这个问题。

目前,您必须以不同方式命名每个控制器。通常,我们建议您在模块名称后面的模块中命名“主”控制器。也就是说,Foo模块中的主控制器将为FooController

答案 2 :(得分:1)

你实际上可以做到这一点;而且还不错......

Rob Allen自己有一篇博文,基本上可以让这个工作......注意你必须基本上把它作为一个基于模块的加载器来处理,它将大部分工作分开,这样我们就没有控制器利用它了:{{ 3}}