Новый роутер
Роутер поддерживает именованные маршруты.
Зачем это нужно?
Это нужно для того, чтобы строить адреса страниц по имени маршрута.
Рассмотрим пример настроек маршрутов:
https://github.com/johncms/joh ... s.php
В целом он не сильно отличается от старого за исключением новых возможностей.
В примере можно увидеть как задаются имена маршрутов.
Чтобы построить URL по имени маршрута можно использовать функцию route()
echo route('login.index');
Этот код выведет URL адрес страницы авторизации. /login
Предположим ситуацию, вы хотите изменить адрес страницы авторизации. Раньше вам пришлось бы менять адрес во всех шаблонах.
Теперь если вы используете описанный выше пример, вы можете изменить адрес в настройках роутера и он изменится автоматически везде где используется функция route с указанным именем.
Это простой пример и возможно не показательный, но вы можете так же более гибко строить адреса в том числе с динамическими параметрами.
Посмотрим на пример:
Опишем простой URL с каким-то действием над пользователем.
$router->get('/userprofile/{user_id}/{action}', [LogoutController::class, 'confirm'])->setName('profile.action');
А теперь получим его передав необходимые параметры
echo route('profile.action', ['user_id' => '1001', 'action' => 'delete']);
// Результатом будет такой URL
/userprofile/1001/delete
Как видите, всё достаточно просто и гибко.