多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

Zend Framework教程-Zend_Helpers-動作助手-創建自己的動作助手

來源:程序員人生   發布時間:2013-11-17 10:58:41 閱讀次數:4154次
助手的抽象基類是Zend_Controller_Action_Helper_Abstract,如要定義自己的助手,需要繼承此類。
類的源代碼如下:
<?php /** * @see Zend_Controller_Action */require_once 'Zend/Controller/Action.php'; abstract class Zend_Controller_Action_Helper_Abstract{    /**     * $_actionController     *     * @var Zend_Controller_Action $_actionController     */    protected $_actionController = null;    /**     * @var mixed $_frontController     */    protected $_frontController = null;    /**     * setActionController()     *     * @param  Zend_Controller_Action $actionController     * @return Zend_Controller_ActionHelper_Abstract Provides a fluent interface     */    public function setActionController(Zend_Controller_Action $actionController = null)    {        $this->_actionController = $actionController;        return $this;    }    /**     * Retrieve current action controller     *     * @return Zend_Controller_Action     */    public function getActionController()    {        return $this->_actionController;    }    /**     * Retrieve front controller instance     *     * @return Zend_Controller_Front     */    public function getFrontController()    {        return Zend_Controller_Front::getInstance();    }    /**     * Hook into action controller initialization     *     * @return void     */    public function init()    {    }    /**     * Hook into action controller preDispatch() workflow     *     * @return void     */    public function preDispatch()    {    }    /**     * Hook into action controller postDispatch() workflow     *     * @return void     */    public function postDispatch()    {    }    /**     * getRequest() -     *     * @return Zend_Controller_Request_Abstract $request     */    public function getRequest()    {        $controller = $this->getActionController();        if (null === $controller) {            $controller = $this->getFrontController();        }        return $controller->getRequest();    }    /**     * getResponse() -     *     * @return Zend_Controller_Response_Abstract $response     */    public function getResponse()    {        $controller = $this->getActionController();        if (null === $controller) {            $controller = $this->getFrontController();        }        return $controller->getResponse();    }    /**     * getName()     *     * @return string     */    public function getName()    {        $fullClassName = get_class($this);        if (strpos($fullClassName, '_') !== false) {            $helperName = strrchr($fullClassName, '_');            return ltrim($helperName, '_');        } elseif (strpos($fullClassName, '') !== false) {            $helperName = strrchr($fullClassName, '');            return ltrim($helperName, '');        } else {            return $fullClassName;        }    }}





助手基類提供的常用方法如下:


setActionController() 用來設置當前的動作控制器。 
init(),該方法在實例化時由助手經紀人觸發,可用來觸發助手的初始化過程;
動作鏈中多個控制器使用相同的助手時,如要恢復狀態時將十分有用。 
preDispatch()分發動作之前觸發。 
postDispatch()分發過程結束時觸發――即使preDispatch()插件已經跳過了該動作。清理時大量使用。 
getRequest() 獲取當前的請求對象。 
getResponse() 獲取當前的響應對象。 


getName() 獲取助手名。獲取了下劃線后面的類名部分,沒有下劃線則獲取類的全名。
例如,如果類名為Zend_Controller_Action_Helper_Redirector,他將返回 Redirector,如果類名為FooMessage,
將會返回全名。 








舉例說明自定義動作助手類
作用:解析傳入的網址,返回各個部分。使用parse_url解析指定的網址。
例如http://blog.csdn.net/mengxiangbaidu/article/details/7236249


用zendstudio新建一個zend framework項目helper_demo1。


新增文件:/helper_demo1/library/Application/Controller/Action/Helpers/UrlParser.php
<?phprequire_once 'Zend/Controller/Action/Helper/Abstract.php'; class Application_Controller_Action_Helpers_UrlParser extends Zend_Controller_Action_Helper_Abstract{    public function __construct()    {    }    /**     * Parse url     *     * @param  String $url     * @return Array  part of url     */    public function parse($url)    {        return parse_url($url);    }}




修改文件:/helper_demo1/application/Bootstrap.php
<?phpclass Bootstrap extends Zend_Application_Bootstrap_Bootstrap{	protected function _initAutoload()	{		$autoloader = Zend_Loader_Autoloader::getInstance();		$autoloader->registerNamespace(array('Application_'));	}		protected function _initActionHelpers() {		//用前綴形式		//Zend_Controller_Action_HelperBroker::addPrefix('Application_Controller_Action_Helpers');		//指定目錄和前綴		//Zend_Controller_Action_HelperBroker::addPath('/www/helper_demo1/library/Application/Controller/Action/Helpers',        //                                    'Application_Controller_Action_Helpers');		//new一個助手類傳入		Zend_Controller_Action_HelperBroker::addHelper(new Application_Controller_Action_Helpers_UrlParser);	}}



修改測試action:/helper_demo1/application/controllers/IndexController.php
<?phpclass IndexController extends Zend_Controller_Action{    public function init()    {        /* Initialize action controller here */    }    public function indexAction()    {        $urlParser = $this->_helper->getHelper('UrlParser'); 	var_dump($urlParser->parse('http://blog.csdn.net/mengxiangbaidu/article/details/7236249'));     }}


以上介紹了自定義動作助手類,以及簡單的使用方法。
需要注意的就是什么是助手類的前綴,助手類的名稱以及助手的路徑。
下面介紹一下zend本身提供的常用的動作助手類。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 波多野结衣91 | 最近中文字幕高清字幕在线视频 | 宅男午夜在线 | 福利片国产 | 婷婷伊人久久 | 一本伊大人香蕉久久网手机 | 中文字幕在线日本 | 视频网站免费观看 | 欧美爱爱爽爽视频在线观看 | 亚洲国产欧美日韩精品一区二区三区 | 日韩欧美一区二区三区 | 中文字幕第5页 | 啦啦啦啦高清视频免费观看 | 网友偷自拍原创区 | 成人国产精品视频频 | 国产精品爱久久久久久久小 | 女网址www女影院 | 亚洲欧洲一区 | 影音先锋色天使 | 免费看一级毛片欧美 | 欧美一级毛片在线播放 | 亚洲国产精品免费在线观看 | 国产成人欧美视频在线 | 泡泡影视福利影院 | 美日韩精品 | 午夜影院啊啊啊 | 一本之道| 日韩精品一区二区三区中文 | 国产精品视频视频久久 | 12306ys播播影院午夜 | 亚洲精品毛片久久久久久久 | 精品国产综合区久久久久久 | 综合亚洲一区二区三区 | www.日本免费 | 欧美色欧美亚洲另类二区精品 | 亚洲最大福利 | 国产精品高清全国免费观看 | 韩国午夜理伦三级2020宅男 | 宅男午夜大片啪啪软件 | 亚洲精品成人久久久影院 | 好大好爽快点吃奶 |