zend framework 2-替换默认phprenderer策略
我开始进入Zend Framework 2,我想做的一件事是创建一个截取,在将视图变量插入模板文件之前将所有选项卡从模板文件中剥离出来zend framework 2-替换默认phprenderer策略,php,zend-framework2,Php,Zend Framework2,我开始进入Zend Framework 2,我想做的一件事是创建一个截取,在将视图变量插入模板文件之前将所有选项卡从模板文件中剥离出来 我推测我必须实现自己的渲染策略,但我不太清楚如何替换默认策略(phprenderer)。是否只是将同名策略的值设置为高于默认值的值?作为参考,我通过添加一个过滤器解决了这个问题 namespace Application\Filter; use Zend\Filter\FilterInterface; class FilterMinifyHTML imple
我推测我必须实现自己的渲染策略,但我不太清楚如何替换默认策略(phprenderer)。是否只是将同名策略的值设置为高于默认值的值?作为参考,我通过添加一个过滤器解决了这个问题
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
中)
你可能会发现samsonasiks的博客很有趣:谢谢你,阅读他的博客让我朝着正确的方向前进,看看Zend\View\Renderer\PhpRenderer.php,我想要的似乎不可能,因为模板已经执行(render()),在这种情况下,模板中的变量将与模板本身同时呈现。事实上,我在这里找到了一个过滤器,它看起来与我要查找的完全一样,但是,我在让zf2使用自定义过滤器时遇到了问题。
/**
* Constructor
*
* @param PhpRenderer $renderer
*/
public function __construct(PhpRenderer $renderer) {
$this->renderer = $renderer;
$filterChain = new FilterChain();
$filterChain->attach(new FilterMinifyHTML());
$this->renderer->setFilterChain($filterChain);
}