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 Psr\Http\Server\MiddlewareInterface;use Slim\Interfaces\AdvancedCallableResolverInterface;use Slim\Interfaces\CallableResolverInterface;use Slim\Interfaces\RouteCollectorProxyInterface;use Slim\Interfaces\RouteGroupInterface;use Slim\MiddlewareDispatcher;class RouteGroup implements RouteGroupInterface{/*** @var callable|string*/protected $callable;protected CallableResolverInterface $callableResolver;protected RouteCollectorProxyInterface $routeCollectorProxy;/*** @var MiddlewareInterface[]|string[]|callable[]*/protected array $middleware = [];protected string $pattern;/*** @param callable|string $callable*/public function __construct(string $pattern,$callable,CallableResolverInterface $callableResolver,RouteCollectorProxyInterface $routeCollectorProxy) {$this->pattern = $pattern;$this->callable = $callable;$this->callableResolver = $callableResolver;$this->routeCollectorProxy = $routeCollectorProxy;}/*** {@inheritdoc}*/public function collectRoutes(): RouteGroupInterface{if ($this->callableResolver instanceof AdvancedCallableResolverInterface) {$callable = $this->callableResolver->resolveRoute($this->callable);} else {$callable = $this->callableResolver->resolve($this->callable);}$callable($this->routeCollectorProxy);return $this;}/*** {@inheritdoc}*/public function add($middleware): RouteGroupInterface{$this->middleware[] = $middleware;return $this;}/*** {@inheritdoc}*/public function addMiddleware(MiddlewareInterface $middleware): RouteGroupInterface{$this->middleware[] = $middleware;return $this;}/*** {@inheritdoc}*/public function appendMiddlewareToDispatcher(MiddlewareDispatcher $dispatcher): RouteGroupInterface{foreach ($this->middleware as $middleware) {$dispatcher->add($middleware);}return $this;}/*** {@inheritdoc}*/public function getPattern(): string{return $this->pattern;}}