我开始进入Zend Framework 2,我想做的其中一件事就是创建一个拦截,在插入视图变量之前从模板文件中删除所有选项卡。
我认为我必须实现自己的渲染策略,但我无法弄清楚如何替换默认渲染策略(phprenderer)。是否只是设置一个具有更高值的同名策略然后是默认值?
答案 0 :(得分:0)
作为参考,我通过添加过滤器解决了这个问题
namespace Application\Filter;
use Zend\Filter\FilterInterface;
class FilterMinifyHTML implements FilterInterface {
public function filter($value) {
return \Minify_HTML::minify($value, array(
'cssMinifier' => array('Minify_CSS', 'minify'),
'jsMinifier' => array('JSMin', 'minify'),
));
}
}
然后应用过滤器(在PhpRenderStrategy.php
)
/**
* Constructor
*
* @param PhpRenderer $renderer
*/
public function __construct(PhpRenderer $renderer) {
$this->renderer = $renderer;
$filterChain = new FilterChain();
$filterChain->attach(new FilterMinifyHTML());
$this->renderer->setFilterChain($filterChain);
}