ZendFramework学习第二章(试图助手)

来源:互联网 发布:淘宝网宴会包 编辑:程序博客网 时间:2024/06/02 10:18

在视图脚本中,经常需要执行某些特定的复杂函数,如格式化日期、生成表单对象或显示Action的连接等。可以通过助手类来完成这些操作。

使用$this->HelperName()来调用助手helper,此时Zend_View会:

1.加载Zend_View_Helper_helperName类,

2.建立一个对象实例

3.调用它的HelperName()方法。

那么这个对象实例会在Zend_View的实例内一直存下去,并可以被$this->HelperName()重复调用。

 

 

Zend_View组件自带了几个helper类,均是用于生成组件的,每个类都有自动过滤变量功能,具体如下:

 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

formButton($name,$value,$attribs) :生成<input type="button"/>

formCheckbox($name,$value,$attribs,$optoins) :生成<input type="checkbox"/> 

        ※$optons参数是一个数组,第一个值是 "checked" ,第二个值是 " unchecked"( 默认为 1 和 0 ) 。

            如果$value匹配"checked"值,则这个checkbox显示为已选中。

formFile($name,$value,$attribs) :生成<input type="file"/>

formHidden($name,$value,$attribs) :生成 <input type="hidden"/>

formPassword($name,$value,$attribs) :生成 <input type="password"/>

formRadio($name,$value,$attribs,$options) :生成 <input type="radio"/>

        ※每一个$options为数组的一个元素,键为radio的值,并且元素的值是radio的标签。

formReset($name,$value,$attribs) :生成 <input type="reset"/>

formSelect($name,$value,$attribs,$options) :建立一个<select> ...</select>标签。

        ※其中每个<option>对应一个$option数组元素。元素的键是option的值,元素的值是option的标签。

           $value这个值的option默认为选中。

formSubmit($name,$value,$attribs) :生成 <input type="submit"/>

formText($name,$value,$attribs) :生成 <input type="text"/>

formTextarea($name,$value,$attribs) :生成 <input type="textarea"/>

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

对于这些助手类使用很简单,只需要调用即可,他们会自己加载并实例化的。

 

下边写个例子,这个例子是我改过的手册上的一个例子:

控制器部分:IndexController.php

<?php

//header("Content-Type: text/html; charset=utf-8");
class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {

     $countries = array(
       'us' => '美国',
       'il' => '以色列',
       'de' => '德国',
       );
     $this->view->countries = $countries;
    }


}

 

视图部分:index.phtml

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="action.php" method="post">
<p><lable>邮箱:
  <?php echo $this->formText('email','you@example.com',array('size'=>32));?>
</lable></p>
<p><lable>国家:
  <?php echo $this->formSelect('country','us',null,$this->countries);?>
</lable></p>
<p><lable>请选择:
  <?php echo $this->formCheckbox('opt_in','yes',null,array('yes','no'));?>
</lable></p>
</form>

</body>
</html>