Router

Компонент обработчика маршрутов

Package: alonity\router\Router

Основной компонент ядра, обрабатывающий маршруты фреймворка.

Включен по умолчанию в базовый набор компонентов.

Ручная установка

composer require alonity/router

Использование

Создание экземпляра класса

Перед началом использования роутера, требуется создать экземпляр класса Router, принимающий в качестве входящих параметров экземпляры классов Request и Response для дальнейшей обработки маршрутов. Данные параметры не являются обязательными.

$router = new Router();

Обработка маршрутов

Для обработки маршрутов, необходимо обратиться к методам необходимых типов(get, post и т.д.)

В качестве аргументов на входе могут приниматься 4 параметра

  1. URI - строка маршрута;

  2. Callback - функция обратного вызова, срабатывающая в момент обращения к маршруту. В качестве данного параметра можно указать строку, которая будет выведена по результату обращения к маршруту;

  3. Middleware - обработчик посредник, который может принимать булевое значение или функцию обратного вызова, возвращающую булевое значение;

  4. 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?