如何覆盖 zend 框架中的默认视图对象,以便我可以拥有自定义视图对象?
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
function _initViewHelpers() {
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('HTML4_STRICT');
$view->setHelperPath(APPLICATION_PATH . '/helpers', '');
$view->headMeta()->appendHttpEquiv('Content-type', 'text/html;charset=utf-8')
->appendName('description', 'Zend Framework');
$view->headTitle()->setSeparator(' - ');
$view->headTitle('Zend Custom View');
$view->setScriptPath(APPLICATION_PATH . '/themes/admin');
return $view;
}
}
默认视图包含模块的默认脚本路径。我想要所有模块的一条路径,以启用模板系统。这setScriptPath
方法应该覆盖视图对象生成的默认路径,但事实并非如此。
array(2) { [0]=> string(66) "C:/xampp/htdocs/NEOBBS_v6/application/modules/admin/views\scripts/" [1]=> string(51) "C:\xampp\htdocs\NEOBBS_v6\application/themes/admin/" }
它有两个scriptPath
s。这可以通过覆盖默认视图对象来完成吗?
ArneRie 发布的内容是正确的,但是 ViewRenderer 检查是否设置了标准脚本路径,如果没有设置则添加它。由于路径是按后进先出的方式检查的,因此 ViewRenderer 在您的路径之后添加标准路径,然后始终使用该路径。
对我有用的是同时设置标准路径和自定义路径,自定义路径位于最后,如下所示:
$view->setScriptPath(array(
APPLICATION_PATH . '/views/scripts/', // or whatever the standard path is
APPLICATION_PATH . '/themes/admin'
));
不过,可能有更好的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)