'Zend_View_Helper_' (当设定助手路径时,你可以指定定制的前缀),类名的最后一部分就是助手名称;这一部分应该是TitleCapped(即像英文文章的标题一样,例如fooBar就要写成FooBar,by Jason Qi);所以,类的全名就是Zend_View_Helper_FooBar 。这个类应当至少有一个在助手之后命名的方法,并且是驼峰格式(即首字母小写,之后的每个单词首字母大写,例如thisIsAnExample。详见http://c2.com/cgi/wiki?CamelCase -- Haohappy注):fooBar() 。
setHelperPath() 来重写当前的路径,缺省助手路径总是指向 Zend Framework 视图助手, 例如:'Zend/View/Helper/',设置这个路径来确保缺省的助手工作。
$this->helperName()来调用helper。这时Zend_View会加载 Zend_View_Helper_HelperName类,建立一个对象实例,并调用它的helperName()方法。对象的实例会在 Zend_View的实例内一直存在,并可以被$this->helperName()重复调用。
Zend_View自带了几个helper类,大部分是用来生成组件的和有自动转义变量的功能。另外,有些助手用来创建基于路由的URL和HTML列表以及声明变量。当前的助手包括:
declareVars(): 当使用 strictVars() 时很有用,这个助手可用来声明已经或还没有在View对象里设置的模板变量,并设置缺省值。当作参数传递改方法的数组将用来设置缺省值;否则,如果变量不存在,就设置一个空的字符串。
fieldset($name, $content, $attribs): 生成一个 XHTML fieldset. 如果 $attribs 包含一个 'legend' 键,它的值将用于 fieldset legend。 Fieldset 将环绕在 $content 周围提供给助手。
form($name, $attribs, $content): 生成一个 XHTML 表单。所有 $attribs 转义和解析成表单标签的 XHTML 属性。如果 $content 不以布尔 false 出现,那么内容就是在表单标签内被解析,如果 $content 是布尔 false (缺省),只有开头的表单标签被生成。
formButton($name, $value, $attribs): 生成 <button /> 元素;
formCheckbox($name, $value, $attribs,$options): 生成 <input type="checkbox" /> 元素。
formErrors($errors, $options): 生成一个无顺序的 XHTML 列表来显示错误。 $errors 是个字符串或字符串数组;$options 是你想放入开头列表标签的任何属性。
setElementStart($string); 缺省为 '<ul class="errors"%s"><li>', 其中 %s 是在 $options 中被替换的属性。
setElementSeparator($string); 缺省为 '</li><li>'。
setElementEnd($string); 缺省为 '</li></ul>'。
formFile($name, $value, $attribs): 生成<input
type="file" />
formHidden($name, $value, $attribs): 生成<input
type="hidden" />
formLabel($name, $value, $attribs): 生成
<label>设置 for 属性给
$name,实际的标签字符给 $value。
如果 disable 传递给
attribs,什么都不返回。
formMultiCheckbox($name, $value, $attribs, $options, $listsep): 生成一个 checkboxes 列表。$options 是个联合数组,可以有任意的深度。$value 可以是单个的值或者是可选的匹配在 $options 数组中的键的一个数组。$listsep 缺省为一个 HTML break ("<br />")。缺省地,这个元素被当作数组,所有 checkboxes 共享同一个名称,并以数组的形式提交。
formPassword($name, $value, $attribs): Creates an
<input type="password" /> element.
formRadio($name, $value, $attribs, $options): 生成一系列<input type="button" />,每个$options数组元素一个,key为radio的值,并且元素的值是radio的标签。
formReset($name, $value, $attribs): 生成<input
type="reset" />
formSelect($name, $value, $attribs, $options): 生成<select>...</select>其中的每个<option>对应于一个$option数组元素。元素的key是option的值,元素的值是option的标签。$value这个值的option默认为选中。
formSubmit($name, $value, $attribs): 生成<input
type="submit" />
formText($name, $value, $attribs): 生成<input
type="text" />
formTextarea($name, $value, $attribs): 生成<textarea>...</textarea>
url($urlOptions, $name, $reset): 基于已命名的路由生成URL字符串。$urlOptions 必须是一个键/值对应的关联数组,用于特定的路由。
htmlList($items, $ordered, $attribs): 基于传递给它的 $items 生成无序的和有序的列表。如果 $items 是多维数组,将创建嵌套的列表。
Zend_View设定助手类的路径。默认地,Zend_View会到 “Zend/View/Helper/”下查找助手类。可以用 setHelperPath() 和 addHelperPath() 方法来告诉 Zend_View 从其它地方来找路径。另外,你也可以指定类名的前缀,用于指定助手类所在的路径,允许给助手类命名空间。默认情况下,如果没有给出前缀,会假设使用“Zend_View_Helper_”。
addHelperPath()来增加helper的路径, Zend_View将使用最近增加的路径。这样你可以使用自己的helper。
addHelperPath() 或 setHelperPath()。
Zend_View就会自动加载,实例化,持久化,并执行。
SpecialPurpose 助手代码的例子:
SpecialPurpose 助手任意次。它将被实例化一次,并且会在Zend_View实例的生命周期内持久存在。
Zend_View 对象-例如,如果需要使用已指定的编码字符集,或想解析其它视图脚本作为助手的一部分。为了访问视图对象,助手类应该有一个 setView($view) 方法,如下:
setView() 方法,它将在助手类第一次实例化时被调用,并接受当前视图对象作为参数。是否让它在类里持久和如何访问,都完全取决于你。