Example #1
0
 public function lookup(Request $request)
 {
     try {
         $parameters = $this->urlMatcher->matchRequest($request, $this->routes);
         $this->logger->info(sprintf('Matched route "%s" (parameters: %s)', $parameters['_route'], Stringify::parametersToString($parameters)));
         $request->attributes->add($parameters);
         unset($parameters['_route'], $parameters['_controller']);
         $request->attributes->set('_route_params', $parameters);
     } catch (ResourceNotFoundException $e) {
         $message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getPathInfo());
         if ($referer = $request->headers->get('referer')) {
             $message .= sprintf(' (from "%s")', $referer);
         }
         throw new NotFoundHttpException($message, $e);
     } catch (MethodNotAllowedException $e) {
         $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), implode(', ', $e->getAllowedMethods()));
         throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
     }
 }