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

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

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

來源:程序員人生   發布時間:2013-11-17 10:58:41 閱讀次數:4161次
助手的抽象基類是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本身提供的常用的動作助手類。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品一区二区三区在线 | 久久aⅴ乱码一区二区三区 蜜桃永久免费 | 中文字幕亚洲激情 | 99久久99久久精品国产片果冻 | 国产日本亚洲香蕉视频 | 久久这里精品 | 一区二区亚洲视频 | 日韩一级片在线播放 | 日本淫片 | 国产h视频在线观看 | 欧美日韩激情在线一区二区三区 | 欧美日韩精品一区二区 | 99re国产| 久久久无码精品亚洲日韩按摩 | 精品91在线 | 国产色av| 久久精品中文 | 欧美日本不卡 | 99精品视频免费 | 国产精品免费观看 | 久久精品小视频 | 欧美xxxx黑人又粗又长 | 国产精品初高中精品久久 | www.色五月| 欧美黑人xxxxx | 91九色论坛 | 精品一区av | 伊人国产精品 | 精品一区二区三区国产 | www.狠狠干| 国产亚洲精品久久久久久牛牛 | 国产电影一区 | 四虎www | 久久久久久亚洲av毛片大全 | 国产三级在线播放 | 麻豆国产一区二区三区四区 | 国产视频一区二区 | 欧美日韩精品一区二区在线播放 | 欧美日韩99 | 亚洲国产视频一区 | 青青草国产成人av片免费 |