public function parse($url, $method = '')
{
$decoded = urldecode($url);
foreach (array_keys($this->_paths) as $path) {
if (strpos($decoded, $path) !== 0) {
continue;
}
$queryParameters = null;
if (strpos($url, '?') !== false) {
list($url, $queryParameters) = explode('?', $url, 2);
parse_str($queryParameters, $queryParameters);
}
/* @var \Cake\Routing\Route\Route $route */
foreach ($this->_paths[$path] as $route) {
$r = $route->parse($url, $method);
if ($r === false) {
continue;
}
if ($queryParameters) {
$r['?'] = $queryParameters;
}
return $r;
}
}
throw new MissingRouteException(['url' => $url]);
}