Zend Framework動作助手Url用法詳解
本文實例講述了Zend Framework動作助手Url用法。分享給大家供大家參考,具體如下:
Url主要用于創(chuàng)建url;
public function simple($action, $controller = null, $module = null, array $params = null) public function url($urlOptions = array(), $name = null, $reset = false, $encode = true) public function direct($action, $controller = null, $module = null, array $params = null)
<?php
class 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://chabaoo.cn/article/80479.htm'));
$url = $this->_helper->getHelper('Url');
$action = 'actionname';
$controller = 'controllername';
$module = 'modulename';
$params = array('param1'=>'中文參數(shù)');
var_dump($url->simple($action, $controller, $module, $params));
$urlOptions = array(
'action'=>$action,
'controller'=>$controller,
'module'=>$module,
'params'=>$params);
var_dump($url->url($urlOptions));
var_dump($url->direct($action, $controller, $module, $params));
exit;
}
}
www.localzend.com/helper_demo1/public/index
string(101) "/helper_demo1/public/modulename/controllername/actionname/param1/%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0"
string(101) "/helper_demo1/public/modulename/controllername/actionname/params/%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0"
string(101) "/helper_demo1/public/modulename/controllername/actionname/param1/%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0"
實現(xiàn)源碼如下:
/**
* @see Zend_Controller_Action_Helper_Abstract
*/
require_once 'Zend/Controller/Action/Helper/Abstract.php';
/**
* Helper for creating URLs for redirects and other tasks
*
* @uses Zend_Controller_Action_Helper_Abstract
* @category Zend
* @package Zend_Controller
* @subpackage Zend_Controller_Action_Helper
* @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Controller_Action_Helper_Url extends Zend_Controller_Action_Helper_Abstract
{
/**
* Create URL based on default route
*
* @param string $action
* @param string $controller
* @param string $module
* @param array $params
* @return string
*/
public function simple($action, $controller = null, $module = null, array $params = null)
{
$request = $this->getRequest();
if (null === $controller) {
$controller = $request->getControllerName();
}
if (null === $module) {
$module = $request->getModuleName();
}
$url = $controller . '/' . $action;
if ($module != $this->getFrontController()->getDispatcher()->getDefaultModule()) {
$url = $module . '/' . $url;
}
if ('' !== ($baseUrl = $this->getFrontController()->getBaseUrl())) {
$url = $baseUrl . '/' . $url;
}
if (null !== $params) {
$paramPairs = array();
foreach ($params as $key => $value) {
$paramPairs[] = urlencode($key) . '/' . urlencode($value);
}
$paramString = implode('/', $paramPairs);
$url .= '/' . $paramString;
}
$url = '/' . ltrim($url, '/');
return $url;
}
/**
* Assembles a URL based on a given route
*
* This method will typically be used for more complex operations, as it
* ties into the route objects registered with the router.
*
* @param array $urlOptions Options passed to the assemble method of the Route object.
* @param mixed $name The name of a Route to use. If null it will use the current Route
* @param boolean $reset
* @param boolean $encode
* @return string Url for the link href attribute.
*/
public function url($urlOptions = array(), $name = null, $reset = false, $encode = true)
{
$router = $this->getFrontController()->getRouter();
return $router->assemble($urlOptions, $name, $reset, $encode);
}
/**
* Perform helper when called as $this->_helper->url() from an action controller
*
* Proxies to {@link simple()}
*
* @param string $action
* @param string $controller
* @param string $module
* @param array $params
* @return string
*/
public function direct($action, $controller = null, $module = null, array $params = null)
{
return $this->simple($action, $controller, $module, $params);
}
}
更多關(guān)于zend相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《Yii框架入門及常用技巧總結(jié)》、《ThinkPHP入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- Zend Framework教程之Zend_Helpers動作助手ViewRenderer用法詳解
- Zend Framework教程之動作的基類Zend_Controller_Action詳解
- Zend Framework動作助手Redirector用法實例詳解
- Zend Framework動作助手Json用法實例分析
- Zend Framework動作助手FlashMessenger用法詳解
- Zend Framework創(chuàng)建自己的動作助手詳解
- Zend Framework動作助手(Zend_Controller_Action_Helper)用法詳解
- Zend Framework教程之前端控制器Zend_Controller_Front用法詳解
- php入門教程之Zend Studio設(shè)置與開發(fā)實例
- Zend Framework開發(fā)入門經(jīng)典教程
- Zend Framework動作控制器用法示例
相關(guān)文章
laravel5.1框架下的批量賦值實現(xiàn)方法分析
這篇文章主要介紹了laravel5.1框架下的批量賦值實現(xiàn)方法,結(jié)合實例形式分析了Laravel5.1框架批量賦值的相關(guān)原理與實現(xiàn)方法,需要的朋友可以參考下2019-12-12
laravel使用組件實現(xiàn)微信網(wǎng)頁授權(quán)登入
這篇文章主要介紹了laravel使用組件實現(xiàn)微信網(wǎng)頁授權(quán)登入,使用laravel組件 laravel-wechat調(diào)用,使用起來很方便,有需要的同學(xué)可以學(xué)習(xí)下2021-03-03
php的array數(shù)組和使用實例簡明教程(容易理解)
最近在教一個朋友php,他沒有其他語言的基礎(chǔ)。對array的理解和用法有些模糊。所以寫了個教程,需要的朋友可以參考下2014-03-03

