AutorÃa | Ultima modificación | Ver Log |
<?php/*** Slim Framework (https://slimframework.com)** @license https://github.com/slimphp/Slim/blob/4.x/LICENSE.md (MIT License)*/declare(strict_types=1);namespace Slim\Routing;use RuntimeException;use Slim\Interfaces\DispatcherInterface;use Slim\Interfaces\RouteCollectorInterface;use Slim\Interfaces\RouteInterface;use Slim\Interfaces\RouteResolverInterface;use function rawurldecode;/*** RouteResolver instantiates the FastRoute dispatcher* and computes the routing results of a given URI and request method*/class RouteResolver implements RouteResolverInterface{protected RouteCollectorInterface $routeCollector;private DispatcherInterface $dispatcher;public function __construct(RouteCollectorInterface $routeCollector, ?DispatcherInterface $dispatcher = null){$this->routeCollector = $routeCollector;$this->dispatcher = $dispatcher ?? new Dispatcher($routeCollector);}/*** @param string $uri Should be $request->getUri()->getPath()*/public function computeRoutingResults(string $uri, string $method): RoutingResults{$uri = rawurldecode($uri);if ($uri === '' || $uri[0] !== '/') {$uri = '/' . $uri;}return $this->dispatcher->dispatch($method, $uri);}/*** @throws RuntimeException*/public function resolveRoute(string $identifier): RouteInterface{return $this->routeCollector->lookupRoute($identifier);}}