Home >Backend Development >PHP Tutorial >About the usage of Zend Framework action assistant Url

About the usage of Zend Framework action assistant Url

不言
不言Original
2018-06-15 17:10:281599browse

This article mainly introduces the usage of Zend Framework action assistant Url, and analyzes the function, definition and related usage skills of action assistant Url in the form of examples. Friends in need can refer to it

The examples in this article describe Zend Framework action helper Url usage. Share it with everyone for your reference, the details are as follows:

Url is mainly used to create 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(&#39;UrlParser&#39;);
    //var_dump($urlParser->parse(&#39;//www.jb51.net/article/80479.htm&#39;));
    $url = $this->_helper->getHelper(&#39;Url&#39;);
    $action = &#39;actionname&#39;;
    $controller = &#39;controllername&#39;;
    $module = &#39;modulename&#39;;
    $params = array(&#39;param1&#39;=>&#39;中文参数&#39;);
    var_dump($url->simple($action, $controller, $module, $params));
    $urlOptions = array(
        &#39;action&#39;=>$action,
        &#39;controller&#39;=>$controller,
        &#39;module&#39;=>$module,
        &#39;params&#39;=>$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/Chinese parameter"
string(101) "/helper_demo1/public/modulename/controllername/actionname/params/Chinese parameters"
string(101) "/helper_demo1/public/modulename/controllername/actionname/params/Chinese parameters"

The implementation source code is as follows :

/**
 * @see Zend_Controller_Action_Helper_Abstract
 */
require_once &#39;Zend/Controller/Action/Helper/Abstract.php&#39;;
/**
 * 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 . &#39;/&#39; . $action;
    if ($module != $this->getFrontController()->getDispatcher()->getDefaultModule()) {
      $url = $module . &#39;/&#39; . $url;
    }
    if (&#39;&#39; !== ($baseUrl = $this->getFrontController()->getBaseUrl())) {
      $url = $baseUrl . &#39;/&#39; . $url;
    }
    if (null !== $params) {
      $paramPairs = array();
      foreach ($params as $key => $value) {
        $paramPairs[] = urlencode($key) . &#39;/&#39; . urlencode($value);
      }
      $paramString = implode(&#39;/&#39;, $paramPairs);
      $url .= &#39;/&#39; . $paramString;
    }
    $url = &#39;/&#39; . ltrim($url, &#39;/&#39;);
    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);
  }
}

The above is the entire content of this article. I hope it will be helpful to everyone’s study. For more related content, please pay attention to PHP Chinese net!

Related recommendations:

Related knowledge about Zend Framework custom Helper class

About Zend Framework action controller Usage

About the usage of Zend_Db_Table_Rowset in Zend Framework

##

The above is the detailed content of About the usage of Zend Framework action assistant Url. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn