Пишу систему роутеров, есть такой код (проверка url):
if (preg_match_all(
'#^'.$uri.'$#', $currentUrl, $matches, PREG_SET_ORDER
)) {
$matches['call'] = $v['call'];
$matches['middleware'] = $v['middleware'];
echo '<pre>';
print_r($matches);
}
Если у меня указано больше 1го роутера:
Route::get('/', '\app\controllers\index\MainController@methodName');
Route::get('/url', '\app\controllers\index\MainController@methodName');
, то результат ($matches) будет пустым если будет использован не последний роутер.
То есть, если я использую /url - все корректно работает, если / - в $matches пустота.
Ниже этого условия так же есть print_r($matches)
Если указанно больше 1го роутера, то в условие (if (preg_match...) print_r($matches) - содержит информацию для любого url (если совпадает), а print_r($matches) который уже ниже условия - не содержит информации.
То есть:
Если указанно больше 1го роутера, то $matches содержит информацию в if () , ниже - нету.
Array
(
[0] => Array
(
[0] => url
)
)
// второй print_r
Array
(
)
Как это решить?