AutorÃa | Ultima modificación | Ver Log |
<?phpnamespace FastRoute;class RouteCollector{/** @var RouteParser */protected $routeParser;/** @var DataGenerator */protected $dataGenerator;/** @var string */protected $currentGroupPrefix;/*** Constructs a route collector.** @param RouteParser $routeParser* @param DataGenerator $dataGenerator*/public function __construct(RouteParser $routeParser, DataGenerator $dataGenerator){$this->routeParser = $routeParser;$this->dataGenerator = $dataGenerator;$this->currentGroupPrefix = '';}/*** Adds a route to the collection.** The syntax used in the $route string depends on the used route parser.** @param string|string[] $httpMethod* @param string $route* @param mixed $handler*/public function addRoute($httpMethod, $route, $handler){$route = $this->currentGroupPrefix . $route;$routeDatas = $this->routeParser->parse($route);foreach ((array) $httpMethod as $method) {foreach ($routeDatas as $routeData) {$this->dataGenerator->addRoute($method, $routeData, $handler);}}}/*** Create a route group with a common prefix.** All routes created in the passed callback will have the given group prefix prepended.** @param string $prefix* @param callable $callback*/public function addGroup($prefix, callable $callback){$previousGroupPrefix = $this->currentGroupPrefix;$this->currentGroupPrefix = $previousGroupPrefix . $prefix;$callback($this);$this->currentGroupPrefix = $previousGroupPrefix;}/*** Adds a GET route to the collection** This is simply an alias of $this->addRoute('GET', $route, $handler)** @param string $route* @param mixed $handler*/public function get($route, $handler){$this->addRoute('GET', $route, $handler);}/*** Adds a POST route to the collection** This is simply an alias of $this->addRoute('POST', $route, $handler)** @param string $route* @param mixed $handler*/public function post($route, $handler){$this->addRoute('POST', $route, $handler);}/*** Adds a PUT route to the collection** This is simply an alias of $this->addRoute('PUT', $route, $handler)** @param string $route* @param mixed $handler*/public function put($route, $handler){$this->addRoute('PUT', $route, $handler);}/*** Adds a DELETE route to the collection** This is simply an alias of $this->addRoute('DELETE', $route, $handler)** @param string $route* @param mixed $handler*/public function delete($route, $handler){$this->addRoute('DELETE', $route, $handler);}/*** Adds a PATCH route to the collection** This is simply an alias of $this->addRoute('PATCH', $route, $handler)** @param string $route* @param mixed $handler*/public function patch($route, $handler){$this->addRoute('PATCH', $route, $handler);}/*** Adds a HEAD route to the collection** This is simply an alias of $this->addRoute('HEAD', $route, $handler)** @param string $route* @param mixed $handler*/public function head($route, $handler){$this->addRoute('HEAD', $route, $handler);}/*** Returns the collected route data, as provided by the data generator.** @return array*/public function getData(){return $this->dataGenerator->getData();}}