/** * @param Request $request * @return bool * @throws \RuntimeException */ public function matches(Request $request) { $pathInfo = trim($request->getPathInfo(), '/'); foreach ($this->router->getRouteSequences() as $sequence) { if (!class_exists($sequence)) { throw new \RuntimeException(sprintf('Route sequence %s does not exist', $sequence)); } $routeMatcher = new $sequence($pathInfo, $this->router->getRoutes()); $params = $routeMatcher->process(); if (is_array($params)) { return $this->processParams($request, $params); } } return false; }