日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > ZendFramework > Zend Framework教程-Zend_Helpers-視圖助手-創建自己的視圖助手

Zend Framework教程-Zend_Helpers-視圖助手-創建自己的視圖助手

來源:程序員人生   發布時間:2014-01-10 14:39:38 閱讀次數:3577次

先來個常用的練練手,高深的自己啄木吧、


1.我們知道zend默認會自動注冊/views/helpers下的助手。如果不在這個目錄下,那就需要addHelperPath之類的東西來加載指定的路徑

2.根據上上一節,說的通常是繼承Zend_View_Helper_Abstract,這個是必須的。然后類的前綴要求是Zend_View_Helper_。這個的唯一好處就是是zend默認命名空間,不需要定義。如果你不用Zend_View_Helper_也可以,那就需要注冊了。所以沒必要大費周折。所以就用Zend_View_Helper_前綴即可。


來,貼點文檔說明“

--------------------------------------------------

編寫自定義的助手類很容易,只要遵循以下幾個原則即可:

  • helper的類名最后部分必須是helper的名稱,并使用混合大小寫字格式。例如,你在寫一個名為“specialPurpose”的類,類名將至少是"SpecialPurpose",另外你還應該給類名加上前綴,建議將“View_Helper”作為前綴的一部份:“My_View_Helper_SpecialPurpose”。(注意大小寫)你將需要將前綴(包含或不包含下劃線)傳遞給addHelperPath()setHelperPath()

  • 類中必須有一個public的方法,該方法名與helper類名相同。該方法將在你的模板調用"$this->specialPurpose()"時執行。在我們的“specialPurpose”例子中,相應的方法聲明可以是“public function specialPurpose()”。

  • 一般來說,助手類不應該echo或print或有其它形式的輸出。它只需要返回值就可以了。返回的數據應當被轉義。

  • 類文件的命名應該是助手類的名稱,比如在"specialPurpose"例子中,文件要存為“SpecialPurpose.php”。

把助手類的文件放在你的助手路徑下, Zend_View就會自動加載,實例化,持久化,并執行。

下面是一個SpecialPurpose 助手代碼的例子:

<?phpclass My_View_Helper_SpecialPurpose{    protected $_count = 0;    public function specialPurpose()    {        $this->_count++;        $output = "I have seen 'The Jerk' {$this->_count} time(s).";        return htmlspecialchars($output);    }}        

在視圖代碼中,可以調用 SpecialPurpose 助手任意次。它將被實例化一次,并且會在Zend_View實例的生命周期內持久存在。

<?php// remember, in a view script, $this refers to the Zend_View instance.echo $this->specialPurpose();echo $this->specialPurpose();echo $this->specialPurpose();        

輸出結果如下所示:

I have seen 'The Jerk' 1 time(s).I have seen 'The Jerk' 2 time(s).I have seen 'The Jerk' 3 time(s).        

有時候需要訪問調用Zend_View 對象-例如,如果需要使用已指定的編碼字符集,或想解析其它視圖腳本作為助手的一部分。為了訪問視圖對象,助手類應該有一個setView($view) 方法,如下:

<?phpclass My_View_Helper_ScriptPath{    public $view;    public function setView(Zend_View_Interface $view)    {        $this->view = $view;    }    public function scriptPath($script)    {        return $this->view->getScriptPath($script);    }}        

如果助手類有一個 setView() 方法,它將在助手類第一次實例

--------------------------------------------

創建助手的應用舉例

寫一個很挫的部門select控件

1;創建類文件:/views/helpers/DepartmentSelect.php

2.類代碼如下:

 

<?php/**  * Helper *   *//**  * DepartmentSelectHelper *   */class Zend_View_Helper_DepartmentSelect extends Zend_View_Helper_Abstract{	private $_departmentModel;   /**    * 獲取部門列表    * @param string $id    * @param string $default    * @param array $attr    * @return string    */    public function departmentSelect ($id,$default=null,$html=null)    {    	$this->_departmentModel = new Model_DepartmentModel ();    	$department = $this->_departmentModel->getList();           	$select_str = PHP_EOL.'<select id="'.$id.'" name="info['.$id.']" '.$html.'>'.PHP_EOL;    	$opton_str = '';    	foreach ($department['result'] as $ky=>$val){    		$opton_str .= sprintf('<option value="%s" '. ( $default==$val['dep_id'] ? 'selected' : '' ).'>%s</option>'.PHP_EOL,$val['dep_id'],$val['dep_name']);    	}    	$select_str .= $opton_str.PHP_EOL;;    	$select_str .= '</select>'.PHP_EOL;    	return $select_str;    }}

3.view,phtml中的使用方法是:

無默認值

<?php  echo $this->departmentSelect('user_department',null,' class="select" ');?>

有默認值

<?php  echo $this->departmentSelect('user_department',$this->data['user_department'],' class="select" ');?>


是不是可以寫點程序,去練練手了!遵循規則,就不會吃大虧。



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产激情 | 91视频国产一区 | 在线h片 | 国内激情| 久久国内| 国产精品一级片 | 久久窝窝 | 国产成人久久精品 | 国产精品久久久久久一区二区 | 国产美女精品视频 | 女人一区二区三区 | 久久久久久久久国产 | 国产精品一区二区三区不卡 | 中文字幕一区二区三区在线视频 | 日韩中文字幕av在线 | 在线日韩视频 | 久久免费播放 | 日韩一区二区三区在线视频 | 午夜激情视频在线 | 久久6这里只有精品 | 99精品一区二区三区 | 免费在线观看av片 | 国产精品一区二区在线看 | 看av片| 97久久人人超碰caoprom欧美 | 成午夜精品一区二区三区软件 | 国产在线网站 | 欧美综合一区二区 | 91久久综合 | 国产精品综合 | 狠狠ri | 国产精品99 | 中文字幕亚洲精品 | 成人动漫一区二区三区 | 成人久久视频 | 欧美大片黄色 | 成人午夜啪啪好大 | 污视频在线观看免费 | 成人国产精品免费网站 | 久艹av| 日韩黄视频 |