Router
Компонент обработчика маршрутов
Package: alonity\router\Router
Основной компонент ядра, обрабатывающий маршруты фреймворка.
Включен по умолчанию в базовый набор компонентов.
Ручная установка
composer require alonity/router
Использование
Создание экземпляра класса
Перед началом использования роутера, требуется создать экземпляр класса Router, принимающий в качестве входящих параметров экземпляры классов Request и Response для дальнейшей обработки маршрутов. Данные параметры не являются обязательными.
$router = new Router();
Обработка маршрутов
Для обработки маршрутов, необходимо обратиться к методам необходимых типов(get, post и т.д.)
В качестве аргументов на входе могут приниматься 4 параметра
URI - строка маршрута;
Callback - функция обратного вызова, срабатывающая в момент обращения к маршруту. В качестве данного параметра можно указать строку, которая будет выведена по результату обращения к маршруту;
Middleware - обработчик посредник, который может принимать булевое значение или функцию обратного вызова, возвращающую булевое значение;
Handlers - кастомизированные параметры маршрута в виде массива типа ключ=>значение, где ключ - параметр, а значение - регулярное выражение
$router->post('hello', function($request, $response){ echo 'Hello'; })
->get('hello/:id/world/:param/*', function($request, $response){ echo 'Hello world'; }, function($request, $response){
return true;
}, [
'id' => '\d+',
'param' => '[a-z0-9]+'
]);
Обработка 404
Url адрес может не попадать ни под один маршрут. Для такого случая есть метод setUndefinedRoute, который принимает в качестве входящего параметра экземпляр класса Route с методом обращения в качестве первого параметра и со всеми теми же параметрами, что и другие маршруты(get, post и т.д.).
$router->setUndefinedRoute(new Route('ANY', '', 'Custom 404 page'));
Last updated
Was this helpful?