Zend Framework使用html文件作为视图脚本而不是phtml

时间:2011-12-09 03:09:47

标签: php model-view-controller zend-view zend-framework

我们有一个开发人员代码,他在php中做过。当我们研究代码时,我们注意到所有视图都将 html 作为其扩展而不是 phtml 。我们通过将文件重命名为phtml来检查,并且它给出了错误。令人惊奇的是,他们没有在应用程序中完成此操作,他们已经在Zend Level完成了这项工作。

如果我用新的下载替换库目录中的zend框架,该应用程序将停止工作。说找不到视图

有谁知道他们是如何做到这一点的(修改后的ZF来搜索html而不是phtml文件)?

还有一件事: 在整个地方,他正在使用保存基本网址的变量$this->baseURL(不是$this->baseUrl(),由zF提供)。它不是一个帮手,我检查过,似乎无法在代码中的任何地方找到声明,但仍然神奇地通过所有控制器和视图可用。他们是如何实施的?我搜索了所有文件,但无法定义baseURL或将baseURL选项写入AUTHSTORAGE或其他任何内容。那他是怎么做到的?再次修改zf?

2 个答案:

答案 0 :(得分:2)

他们可能更改了Zend Layout类文件Zend/Layout.php

您可以检查protected $_viewSuffix = 'html';而不是默认的phtml。

您可以通过在引导程序中添加以下内容来解决此问题,以便升级Zend Framework文件。

protected function _initViewSuffix()
{
    Zend_Layout::getMvcInstance()->setViewSuffix('html');
}

至于$ baseURL变量,可以通过插件或动作助手来设置。

如果您获得了视图对象,则可以执行$view->baseURL = 'xxx';之类的操作以使其可用。这可以通过插件或动作助手来完成。

希望有所帮助。

答案 1 :(得分:2)

查看Zend/Controller/Action/Helper/ViewRenderer.php您应该找到的地方

protected $_viewSuffix = 'html'

更改视图后缀的更好方法是将其添加到application/Bootstrap.php

/**
 * Set default view suffix to .html (see http://framework.zend.com/issues/browse/ZF-5301)
 */
protected function _initViewSuffix()
{
    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setViewSuffix('html');
}

或者您可以通过所有控制器中的此init方法更改它

public function init()
{
    $this->_helper->viewRenderer->setViewSuffix('html');
}
drew010 所提及的

Zend_Layout只会更改布局的后缀,而不会更改视图的后缀。