什么是Zend View过滤器?我在ZF1文档http://framework.zend.com/manual/1.12/en/zend.view.introduction.html和Zend_View
代码中看到了它们,但我找不到对它们的解释。
也许是为了支持其他有过滤器的模板系统?在这种情况下,过滤器在这些模板系统中做了什么?
谢谢!
答案 0 :(得分:7)
这是一个Zend View过滤器的示例:
http://dev.bigace.org/api/3.0/Bigace_Zend/View_Filter/Bigace_Zend_View_Filter_ObfuscateMailto.html
它过滤发现的mailto链接并对它们进行模糊处理。
Zend View Filter在已经呈现的phtml文件(= html代码)上执行某些操作,然后再将其发送到客户端。
这是一个可以在Zend View输出上使用的Zend_Filter。
以下是代码来自的另一个例子:
http://www.phpgangsta.de/zend_view-output-filter-whitespaces-aus-html-entfernen
过滤器类(从html过滤空格=减少要发送的代码):
<?php
class App_View_Filter_Minify implements Zend_Filter_Interface
{
public function filter($string)
{
return preg_replace(
array('/>\s+/', '/\s+</', '/[\r\n]+/'),
array('>', '<', ' '),
$string
);
}
}
然后将过滤器添加到视图中:
/**
* Add Output filters to View
*
* @return void
*/
protected function _initViewFilter()
{
$view = $this->getResource('view');
$view->addFilterPath('App/View/Filter', 'App_View_Filter_')
->addFilter('Minify');
}