for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Yiisoft\Router;
final class RouteCollector implements RouteCollectorInterface
{
/**
* @var Group[]|Route[]
*/
private array $items = [];
private array $middlewareDefinitions = [];
public function addRoute(Route $route): RouteCollectorInterface
$this->items[] = $route;
return $this;
}
public function addGroup(GroupInterface $group): RouteCollectorInterface
$this->items[] = $group;
* Appends a handler middleware definition that should be invoked for a matched route.
* First added handler will be executed first.
*
* @param mixed $middlewareDefinition
* @return self
public function middleware($middlewareDefinition): RouteCollectorInterface
array_unshift($this->middlewareDefinitions, $middlewareDefinition);
* Prepends a handler middleware definition that should be invoked for a matched route.
* First added handler will be executed last.
public function prependMiddleware($middlewareDefinition): RouteCollectorInterface
$this->middlewareDefinitions[] = $middlewareDefinition;
* @return Group[]|Route[]
public function getItems(): array
return $this->items;
public function getMiddlewareDefinitions(): array
return $this->middlewareDefinitions;