Zend_View是用来在MVC模式中处理View(视图)部份的一个类。也就是说它用来使视图部份的代码与Model及controller部分分离。它提供了helper,output filter,variable escaping等几个功能组件。
Zend_View使用PHP本身作为你的模板,或者你也可以建立其它模板引擎的实例,并用你的view代码来对其进行操作。
Zend_View主要有两步: 1. 你的Controller建立一个Zend_View实例,并将需要的变量传递给它; 2. Controller告诉Zend_View解析一个特定的视图,生成View输出的内容。
Zend_View实例的内部运行的,所以$this指向的是Zend_View实例和类方法。(controller传递给Zend_View实例的变量是public的)。一段非常基本的视图代码看起来是这样的:
| Author | Title |
|---|---|
| escape($val['author']) ?> | escape($val['title']) ?> |
There are no books to display.
]]>Zend_View有若干选项来配置视图脚本的运行。
basePath: 指示一个基本路径,可以在下面设置script、 helper 和 filter 路径。目录结构如下:
setBasePath()、addBasePath()、或 basePath设置给构造器。
encoding: 指定 htmlentities()、htmlspecialchars()和其它操作所采用的字符集,缺省为 ISO-8859-1 (latin1)。也可以通过setEncoding() 或 encoding 设置给构造器。
escape: 指定escape()所使用的回调函数(callback)。也可以通过setEscape()或escape设置给构造器。
filter: 指示在解析视图脚本后使用的过滤器。可以通过setFilter()、addFilter()或者filter设置给构造器。
strictVars: 指定某些未初始化的视图变量被访问时,Zend_View必须发出通知和警告。可以通过调用strictVars(true) 或传递strictVars给构造器来设置。
assign()、render()或其中之一来设置/添加过滤器、助手类、和脚本路径。然而,如果希望扩展Zend_View或需要访问它的内部,有许多访问器(Accessor)可用:
getVars() 将返回所有已赋值的变量。
clearVars() 将清除所有已赋值的变量;当你想重新使用同一个视图对象,并决定哪些变量可用时,这个功能很有用。
getScriptPath($script) 将获取指定的视图脚本的路径。
getScriptPaths() 将获取所有注册的脚本路径。
getHelperPath($helper) 将获取已命名的助手类的路径。
getHelperPaths() 将获取所有注册的助手路径。
getFilterPath($filter) 将获取已命名的过滤器类的路径。
getFilterPaths() 将获取所有注册的过滤器文件的路径。