7

Zend 视图过滤器是什么?我在 ZF1 文档http://framework.zend.com/manual/1.12/en/zend.view.introduction.htmlZend_View代码中看到了它们,但我找不到它们的解释。

也许是为了支持其他具有过滤器的模板系统?在那种情况下,过滤器在这些模板系统中做了什么?

谢谢!

4

1 回答 1

7

这是 Zend 视图过滤器的示例:

http://dev.bigace.org/api/3.0/Bigace_Zend/View_Filter/Bigace_Zend_View_Filter_ObfuscateMailto.html

它过滤找到的 mailto 链接并对其进行混淆处理。

Zend 视图过滤器在将已渲染的 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');
}
于 2013-04-04T05:33:00.180 回答