Руководство

Routing

Именованные маршруты, параметры и локализация только там, где они действительно нужны стратегии URL.

Начните с простых именованных маршрутов

Для начала используйте getNamed(), postNamed() и похожие методы в app/Config/Routing.php. Это самый понятный вариант для нового проекта и он соответствует skeleton.

example.php
<?php

use App\Controllers\ArticleController;
use Lemonade\Framework\Routing\Router;

return static function (Router $router): void {
    $router->getNamed(
        'articles.detail',
        '/articles/{id}',
        ArticleController::class . '@detail',
    );
};

Параметры маршрутов и генерация URL

Параметры маршрута передаются в аргументы action по имени. Генерируйте URL через UrlGenerator или view helper-методы вместо ручной сборки путей.

example.php
$url = $this->url()->route('articles.detail', [
    'id' => 123,
    'preview' => 1,
]);

Локализация маршрутов необязательна

Используйте localizedGroup() только если приложению действительно нужны URL, зависящие от языка. Это не обязано быть частью первого примера каждого проекта. Когда базовый routing понятен, переходите к Middleware для общих правил request и к Формам и POST-потоку для форм, меняющих состояние.

example.php
$router->localizedGroup(static function (Router $router): void {
    $router->getNamed('home.index', '/', 'HomeController@index');
});