Справочник API

Полный справочник по всем публичным классам и методам.

Содержание

RouteRegistrar

Самостоятельный строитель маршрутов. Предоставляет fluent API для ручной регистрации, загрузки атрибутов и групп маршрутов.

use AsceticSoft\Waypoint\RouteRegistrar;

$registrar = new RouteRegistrar();

Регистрация маршрутов

Метод Описание
addRoute(string $path, array\|Closure $handler, array $methods, array $middleware, string $name, int $priority): self Зарегистрировать маршрут для указанных HTTP-методов
get(string $path, array\|Closure $handler, ...): self Зарегистрировать GET-маршрут
post(string $path, array\|Closure $handler, ...): self Зарегистрировать POST-маршрут
put(string $path, array\|Closure $handler, ...): self Зарегистрировать PUT-маршрут
delete(string $path, array\|Closure $handler, ...): self Зарегистрировать DELETE-маршрут
group(string $prefix, Closure $callback, array $middleware): self Сгруппировать маршруты под общим префиксом

Загрузка атрибутов

Метод Описание
loadAttributes(string ...$classes): self Загрузить маршруты из атрибутов #[Route]
scanDirectory(string $directory, string $namespace, string $filePattern = '*.php'): self Автоматически обнаружить маршруты, сканируя директорию

Инспекция

Метод Описание
getRouteCollection(): RouteCollection Получить коллекцию маршрутов, построенную регистратором

Router

PSR-15 обработчик запросов, выполняющий диспетчеризацию через конвейер middleware. Реализует Psr\Http\Server\RequestHandlerInterface.

use AsceticSoft\Waypoint\Router;

$router = new Router(
    ContainerInterface $container,
    RouteCollection $routes = new RouteCollection(),
    ?UrlMatcherInterface $matcher = null,
);

Middleware

Метод Описание
addMiddleware(string\|MiddlewareInterface ...$middleware): self Добавить глобальный middleware

Кэширование

Метод Описание
loadCache(string $cacheFilePath): self Загрузить маршруты из файла кэша

Обработка запросов

Метод Описание
handle(ServerRequestInterface $request): ResponseInterface PSR-15 обработчик запроса

Генерация URL

Метод Описание
setBaseUrl(string $baseUrl): self Установить базовый URL для абсолютных URL
getUrlGenerator(): UrlGenerator Получить экземпляр генератора URL (создаётся лениво)

Инспекция

Метод Описание
getRouteCollection(): RouteCollection Получить коллекцию маршрутов
getMatcher(): UrlMatcherInterface Получить матчер URL (создаётся лениво из коллекции)

RouteCollection

Хранит и сопоставляет маршруты. Использует RouteTrie для быстрого поиска.

Метод Описание
add(Route $route): void Добавить маршрут в коллекцию
match(string $method, string $uri): RouteMatchResult Сопоставить HTTP-метод и URI с маршрутом
all(): Route[] Получить все маршруты, отсортированные по приоритету
findByName(string $name): ?Route Найти маршрут по имени

Route

Неизменяемый объект-значение, представляющий один маршрут.

Метод Описание
compile(): string Скомпилировать шаблон в regex
match(string $uri): ?array Сопоставить URI с маршрутом, возвращает параметры или null
allowsMethod(string $method): bool Проверить, разрешён ли HTTP-метод
toArray(): array Сериализовать для кэширования
fromArray(array $data): static Десериализовать из кэша

UrlGenerator

Обратная маршрутизация — генерация URL из имён маршрутов и параметров.

use AsceticSoft\Waypoint\UrlGenerator;

$generator = new UrlGenerator(RouteCollection $routes, string $baseUrl = '');
Метод Описание
generate(string $name, array $params = [], array $query = [], bool $absolute = false): string Сгенерировать URL из имени маршрута

AttributeRouteLoader

Чтение атрибутов #[Route] из классов контроллеров.

use AsceticSoft\Waypoint\Loader\AttributeRouteLoader;

$loader = new AttributeRouteLoader();
Метод Описание
loadFromClass(string $className): Route[] Загрузить маршруты из одного класса
loadFromDirectory(string $directory, string $namespace, string $filePattern = '*.php'): Route[] Просканировать директорию на контроллеры с #[Route]

RouteDiagnostics

Обнаружение конфликтов маршрутов и формирование отчётов.

use AsceticSoft\Waypoint\Diagnostic\RouteDiagnostics;

$diagnostics = new RouteDiagnostics(RouteCollection $routes);
Метод Описание
listRoutes(): void Вывести форматированную таблицу маршрутов
findConflicts(): DiagnosticReport Обнаружить конфликты и вернуть отчёт
printReport(): void Вывести полный диагностический отчёт

RouteCompiler

Компиляция и загрузка файлов кэша маршрутов.

use AsceticSoft\Waypoint\Cache\RouteCompiler;

$compiler = new RouteCompiler();
Метод Описание
compile(RouteCollection $routes, string $cacheFilePath): void Скомпилировать маршруты в PHP-файл кэша (compiled matcher class)
load(string $cacheFilePath): UrlMatcherInterface Загрузить матчер из файла кэша
isFresh(string $cacheFilePath): bool Проверить, существует ли файл кэша

Исключения

Исключение Когда
RouteNotFoundException Ни один маршрут не совпал с URI (HTTP 404)
MethodNotAllowedException URI совпал, но метод не разрешён (HTTP 405)
RouteNameNotFoundException Имя маршрута не найдено при генерации URL
MissingParametersException Отсутствуют обязательные параметры при генерации URL
BaseUrlNotSetException Запрошен абсолютный URL, но базовый URL не настроен

MethodNotAllowedException предоставляет метод getAllowedMethods(): array для получения списка разрешённых HTTP-методов.