|
16 | 16 |
|
17 | 17 | /** |
18 | 18 | * The bidirectional route is responsible for mapping |
19 | | - * HTTP request to a Request object for dispatch and vice-versa. |
| 19 | + * HTTP request to an array for dispatch and vice-versa. |
20 | 20 | */ |
21 | 21 | class Route implements Application\IRouter |
22 | 22 | { |
@@ -146,9 +146,9 @@ public function __construct(string $mask, $metadata = [], int $flags = 0) |
146 | 146 |
|
147 | 147 |
|
148 | 148 | /** |
149 | | - * Maps HTTP request to a Request object. |
| 149 | + * Maps HTTP request to an array. |
150 | 150 | */ |
151 | | - public function match(Nette\Http\IRequest $httpRequest): ?Application\Request |
| 151 | + public function match(Nette\Http\IRequest $httpRequest): ?array |
152 | 152 | { |
153 | 153 | // combine with precedence: mask (params in URL-path), fixity, query, (post,) defaults |
154 | 154 |
|
@@ -249,39 +249,27 @@ public function match(Nette\Http\IRequest $httpRequest): ?Application\Request |
249 | 249 | } elseif (!is_string($params[self::PRESENTER_KEY])) { |
250 | 250 | return null; |
251 | 251 | } |
252 | | - $presenter = $params[self::PRESENTER_KEY]; |
253 | | - unset($params[self::PRESENTER_KEY]); |
254 | 252 |
|
255 | | - if (isset($this->metadata[self::MODULE_KEY])) { |
256 | | - $presenter = (isset($params[self::MODULE_KEY]) ? $params[self::MODULE_KEY] . ':' : '') . $presenter; |
257 | | - unset($params[self::MODULE_KEY]); |
| 253 | + if (isset($this->metadata[self::MODULE_KEY], $params[self::MODULE_KEY])) { |
| 254 | + $params[self::PRESENTER_KEY] = $params[self::MODULE_KEY] . ':' . $params[self::PRESENTER_KEY]; |
258 | 255 | } |
| 256 | + unset($params[self::MODULE_KEY]); |
259 | 257 |
|
260 | | - return new Application\Request( |
261 | | - $presenter, |
262 | | - $httpRequest->getMethod(), |
263 | | - $params, |
264 | | - $httpRequest->getPost(), |
265 | | - $httpRequest->getFiles(), |
266 | | - [Application\Request::SECURED => $httpRequest->isSecured()] |
267 | | - ); |
| 258 | + return $params; |
268 | 259 | } |
269 | 260 |
|
270 | 261 |
|
271 | 262 | /** |
272 | | - * Constructs absolute URL from Request object. |
| 263 | + * Constructs absolute URL from array. |
273 | 264 | */ |
274 | | - public function constructUrl(Application\Request $appRequest, Nette\Http\Url $refUrl): ?string |
| 265 | + public function constructUrl(array $params, Nette\Http\Url $refUrl): ?string |
275 | 266 | { |
276 | 267 | if ($this->flags & self::ONE_WAY) { |
277 | 268 | return null; |
278 | 269 | } |
279 | 270 |
|
280 | | - $params = $appRequest->getParameters(); |
281 | 271 | $metadata = $this->metadata; |
282 | | - |
283 | | - $presenter = $appRequest->getPresenterName(); |
284 | | - $params[self::PRESENTER_KEY] = $presenter; |
| 272 | + $presenter = $params[self::PRESENTER_KEY]; |
285 | 273 |
|
286 | 274 | if (isset($metadata[self::MODULE_KEY])) { // try split into module and [submodule:]presenter parts |
287 | 275 | $module = $metadata[self::MODULE_KEY]; |
|
0 commit comments