1
1
<?php
2
2
namespace Pecee \SimpleRouter ;
3
3
4
- use Pecee \ArrayUtil ;
5
4
use Pecee \Http \Middleware \BaseCsrfVerifier ;
6
5
use Pecee \Http \Request ;
7
- use Pecee \Url ;
8
6
9
7
class RouterBase {
10
8
@@ -42,8 +40,8 @@ protected function processRoutes(array $routes, array $settings = array(), array
42
40
// Loop through each route-request
43
41
44
42
$ activeGroup = null ;
45
-
46
43
$ routesCount = count ($ routes );
44
+ $ mergedSettings = array ();
47
45
48
46
/* @var $route RouterEntry */
49
47
for ($ i = 0 ; $ i < $ routesCount ; $ i ++) {
@@ -123,7 +121,7 @@ public function routeRequest() {
123
121
124
122
$ routeMatch = $ route ->matchRoute ($ this ->request );
125
123
126
- if ($ routeMatch && !( $ routeMatch instanceof RouterGroup) ) {
124
+ if ($ routeMatch ) {
127
125
128
126
if (count ($ route ->getRequestMethods ()) && !in_array ($ this ->request ->getMethod (), $ route ->getRequestMethods ())) {
129
127
$ routeNotAllowed = true ;
@@ -132,9 +130,9 @@ public function routeRequest() {
132
130
133
131
$ routeNotAllowed = false ;
134
132
135
- $ this ->loadedRoute = $ routeMatch ;
136
- $ routeMatch ->loadMiddleware ($ this ->request );
137
- $ routeMatch ->renderRoute ($ this ->request );
133
+ $ this ->loadedRoute = $ route ;
134
+ $ route ->loadMiddleware ($ this ->request );
135
+ $ route ->renderRoute ($ this ->request );
138
136
break ;
139
137
}
140
138
}
@@ -221,6 +219,15 @@ public function setBaseCsrfVerifier(BaseCsrfVerifier $baseCsrfVerifier) {
221
219
return $ this ;
222
220
}
223
221
222
+ protected function getParamsToArray ($ query ) {
223
+ $ output = array ();
224
+ if ($ query [0 ] === '? ' ) {
225
+ $ query = substr ($ query , 1 );
226
+ }
227
+ parse_str ($ query , $ output );
228
+ return $ output ;
229
+ }
230
+
224
231
protected function processUrl ($ route , $ method = null , $ parameters = null , $ getParams = null ) {
225
232
226
233
$ url = '/ ' . trim ($ route ->getUrl (), '/ ' );
@@ -254,7 +261,7 @@ protected function processUrl($route, $method = null, $parameters = null, $getPa
254
261
$ url = rtrim ($ url , '/ ' ) . '/ ' ;
255
262
256
263
if ($ getParams !== null && count ($ getParams )) {
257
- $ url .= '? ' .Url:: arrayToParams ($ getParams );
264
+ $ url .= '? ' . $ this -> getParamsToArray ($ getParams );
258
265
}
259
266
260
267
return $ url ;
@@ -328,13 +335,15 @@ public function getRoute($controller = null, $parameters = null, $getParams = nu
328
335
$ url = array ($ controller );
329
336
330
337
if (is_array ($ parameters )) {
331
- ArrayUtil::append ($ url , $ parameters );
338
+ foreach ($ parameters as $ key => $ value ) {
339
+ array_push ($ url ,$ value );
340
+ }
332
341
}
333
342
334
343
$ url = '/ ' . trim (join ('/ ' , $ url ), '/ ' ) . '/ ' ;
335
344
336
345
if (is_array ($ getParams )) {
337
- $ url .= '? ' . Url:: arrayToParams ($ getParams );
346
+ $ url .= '? ' . $ this -> getParamsToArray ($ getParams );
338
347
}
339
348
340
349
return $ url ;
0 commit comments