【问题标题】:set view suffix for view files in zend framework 2在zend框架2中为视图文件设置视图后缀
【发布时间】:2014-01-07 09:18:03
【问题描述】:

默认的 zend 框架 2 配置依赖于 phtml 文件进行视图渲染。但是,出于安全原因,我想将其更改为 php.ini。

来自this 链接,我了解到我需要创建一个自定义视图帮助程序才能做到这一点,或者是否可以更改设置以将后缀从 phtml 更改为 php,这到底是如何完成的?

更新:我得到了它的工作,但不是我想要的方式。如果可能的话,我想从guessimtoolate 工作中得到答案。所以我更喜欢在我的 module.config.php 中使用这样的东西:

'view_manager' => array(
    'default_suffix' => 'php',
    //etc...
)

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    如果我没记错的话,你可以在模块配置文件view_manager下的default_suffix键中定义它,例如:

    return array(
        // ...
        'view_manager' => array(
            'default_template_suffix' => 'php',
            // ...
        ),
        // ...
    );
    

    这应该使模板文件解析器寻找.php 文件而不是.phtml

    不完全确定这是如何改进的,但可以做到。

    更新: 抱歉,我写错了配置键名——应该是default_template_suffix 而不是default_suffix。它被使用,例如:在Zend\Mvc\Service\ViewTemplatePathStackFactory 路径堆栈解析器诞生的地方:)。

    【讨论】:

    • 我得到了其他答案,但我更喜欢你的答案。但是您的代码不起作用。
    • offtopic 我想这样做是因为我认为 phtml 不是标准的 php 文件扩展名。是的,它可以作为 php 包含并执行,但如果直接调用,则 php 只会显示整个内容!
    • @J.Rahmati 虽然不能直接调用文件,因为您的主机应该根植于/public 目录。因此,世界无法直接访问您的 .phtml 文件,因此这不是安全问题。
    • @Sam 我知道,但我没有正确的权限来处理这个问题,并且无论如何都想这样做(即使主机根入公共目录)只是为了安全起见这边可能会出问题!
    • 没有人知道我如何使用这个答案来完成这项工作吗?
    【解决方案2】:

    在你的 module.php 中试试这个:

    //module.php
    public function onBootstrap(MvcEvent $e)
    {
        $application = $e->getApplication();
        $sm = $application->getServiceManager();        
    
        $sm->get('ViewTemplatePathStack')->setDefaultSuffix('php');
    }
    

    然后将项目中的所有.phtml文件更改为.php

    【讨论】:

      【解决方案3】:

      在您的应用程序模块中,Module.php 文件:

      public function onBootstrap($e)
      {
          $app = $e->getApplication();
          $sl  = $app->getServiceManager();
      
          $resolver = $sl->get('ViewTemplatePathStack');
          $resolver->setDefaultSuffix('php');
      }
      

      这里发生的情况是,在引导过程中,您抓取路径堆栈并在解析器上设置后缀。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        相关资源
        最近更新 更多