|
|
- <?hh // decl
-
- namespace FastRoute {
- class BadRouteException extends \LogicException {
- }
-
- interface RouteParser {
- public function parse(string $route): array<array>;
- }
-
- class RouteCollector {
- public function __construct(RouteParser $routeParser, DataGenerator $dataGenerator);
- public function addRoute(mixed $httpMethod, string $route, mixed $handler): void;
- public function getData(): array;
- }
-
- class Route {
- public function __construct(string $httpMethod, mixed $handler, string $regex, array $variables);
- public function matches(string $str): bool;
- }
-
- interface DataGenerator {
- public function addRoute(string $httpMethod, array $routeData, mixed $handler);
- public function getData(): array;
- }
-
- interface Dispatcher {
- const int NOT_FOUND = 0;
- const int FOUND = 1;
- const int METHOD_NOT_ALLOWED = 2;
- public function dispatch(string $httpMethod, string $uri): array;
- }
-
- function simpleDispatcher(
- (function(RouteCollector): void) $routeDefinitionCallback,
- shape(
- 'routeParser' => ?classname<RouteParser>,
- 'dataGenerator' => ?classname<DataGenerator>,
- 'dispatcher' => ?classname<Dispatcher>,
- 'routeCollector' => ?classname<RouteCollector>,
- ) $options = shape()): Dispatcher;
-
- function cachedDispatcher(
- (function(RouteCollector): void) $routeDefinitionCallback,
- shape(
- 'routeParser' => ?classname<RouteParser>,
- 'dataGenerator' => ?classname<DataGenerator>,
- 'dispatcher' => ?classname<Dispatcher>,
- 'routeCollector' => ?classname<RouteCollector>,
- 'cacheDisabled' => ?bool,
- 'cacheFile' => ?string,
- ) $options = shape()): Dispatcher;
- }
-
- namespace FastRoute\DataGenerator {
- abstract class RegexBasedAbstract implements \FastRoute\DataGenerator {
- protected abstract function getApproxChunkSize();
- protected abstract function processChunk($regexToRoutesMap);
-
- public function addRoute(string $httpMethod, array $routeData, mixed $handler): void;
- public function getData(): array;
- }
-
- class CharCountBased extends RegexBasedAbstract {
- protected function getApproxChunkSize(): int;
- protected function processChunk(array<string, string> $regexToRoutesMap): array<string, mixed>;
- }
-
- class GroupCountBased extends RegexBasedAbstract {
- protected function getApproxChunkSize(): int;
- protected function processChunk(array<string, string> $regexToRoutesMap): array<string, mixed>;
- }
-
- class GroupPosBased extends RegexBasedAbstract {
- protected function getApproxChunkSize(): int;
- protected function processChunk(array<string, string> $regexToRoutesMap): array<string, mixed>;
- }
-
- class MarkBased extends RegexBasedAbstract {
- protected function getApproxChunkSize(): int;
- protected function processChunk(array<string, string> $regexToRoutesMap): array<string, mixed>;
- }
- }
-
- namespace FastRoute\Dispatcher {
- abstract class RegexBasedAbstract implements \FastRoute\Dispatcher {
- protected abstract function dispatchVariableRoute(array<array> $routeData, string $uri): array;
-
- public function dispatch(string $httpMethod, string $uri): array;
- }
-
- class GroupPosBased extends RegexBasedAbstract {
- public function __construct(array $data);
- protected function dispatchVariableRoute(array<array> $routeData, string $uri): array;
- }
-
- class GroupCountBased extends RegexBasedAbstract {
- public function __construct(array $data);
- protected function dispatchVariableRoute(array<array> $routeData, string $uri): array;
- }
-
- class CharCountBased extends RegexBasedAbstract {
- public function __construct(array $data);
- protected function dispatchVariableRoute(array<array> $routeData, string $uri): array;
- }
-
- class MarkBased extends RegexBasedAbstract {
- public function __construct(array $data);
- protected function dispatchVariableRoute(array<array> $routeData, string $uri): array;
- }
- }
-
- namespace FastRoute\RouteParser {
- class Std implements \FastRoute\RouteParser {
- const string VARIABLE_REGEX = <<<'REGEX'
- \{
- \s* ([a-zA-Z][a-zA-Z0-9_]*) \s*
- (?:
- : \s* ([^{}]*(?:\{(?-1)\}[^{}]*)*)
- )?
- \}
- REGEX;
- const string DEFAULT_DISPATCH_REGEX = '[^/]+';
- public function parse(string $route): array<array>;
- }
- }
|