Source for file SimpleRouter.php
Documentation is available at SimpleRouter.php
6: * @copyright Copyright (c) 2004, 2010 David Grudl
7: * @license http://nettephp.com/license Nette license
8: * @link http://nettephp.com
10: * @package Nette\Application
16: * The bidirectional route for trivial routing via query string.
18: * @copyright Copyright (c) 2004, 2010 David Grudl
19: * @package Nette\Application
27: private $module =
'';
38: * @param array default values
46: self::PRESENTER_KEY =>
substr($defaults, 0, $a),
51: if (isset($defaults[self::MODULE_KEY])) {
52: $this->module =
$defaults[self::MODULE_KEY] .
':';
53: unset($defaults[self::MODULE_KEY]);
56: $this->defaults =
$defaults;
57: $this->flags =
$flags;
63: * Maps HTTP request to a PresenterRequest object.
64: * @param IHttpRequest
65: * @return PresenterRequest|NULL
67: public function match(IHttpRequest $httpRequest)
69: // combine with precedence: get, (post,) defaults
70: $params =
$httpRequest->getQuery();
71: $params +=
$this->defaults;
73: if (!isset($params[self::PRESENTER_KEY])) {
77: $presenter =
$this->module .
$params[self::PRESENTER_KEY];
78: unset($params[self::PRESENTER_KEY]);
82: $httpRequest->getMethod(),
84: $httpRequest->getPost(),
85: $httpRequest->getFiles(),
93: * Constructs absolute URL from PresenterRequest object.
94: * @param IHttpRequest
95: * @param PresenterRequest
96: * @return string|NULL
98: public function constructUrl(PresenterRequest $appRequest, IHttpRequest $httpRequest)
100: $params =
$appRequest->getParams();
103: $presenter =
$appRequest->getPresenterName();
110: // remove default values; NULL values are retain
111: foreach ($this->defaults as $key =>
$value) {
112: if (isset($params[$key]) &&
$params[$key] ==
$value) { // intentionally ==
113: unset($params[$key]);
117: $uri =
$httpRequest->getUri();
118: $uri =
($this->flags & self::SECURED ?
'https://' :
'http://') .
$uri->getAuthority() .
$uri->getScriptPath();
121: if ($query !=
'') { // intentionally ==
122: $uri .=
'?' .
$query;
130: * Returns default values.
135: return $this->defaults;