本文实例讲述了Zend Framework动作助手Url用法。分享给大家供大家参考,具体如下:
Url主要用于创建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://www.phpstudy.net/article/80479.htm\')); $url = $this->_helper->getHelper(\'Url\'); $action = \'actionname\'; $controller = \'controllername\'; $module = \'modulename\'; $params = array(\'param1\'=>\'中文参数\'); 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\"
实现源码如下:
/** * @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); } }
更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
本文地址:https://www.stayed.cn/item/2882
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我