Как настроить роуты с помощью директорий в папке router?

Для настройки маршрутов с использованием директорий в папке router в Laravel, вам понадобится выполнить несколько шагов.

Шаг 1: Создайте папку router/ внутри директории app

mkdir app/router

Шаг 2: Создайте файл routes.php внутри папки router/

touch app/router/routes.php

Шаг 3: Откройте файл app/Providers/RouteServiceProvider.php и найдите метод map(), который регистрирует маршруты для вашего приложения.

public function map()
{
    $this->mapApiRoutes();

    $this->mapWebRoutes();

    // Добавьте следующую строку:
    $this->mapRouterRoutes();
}

Шаг 4: Добавьте новый метод mapRouterRoutes() в класс RouteServiceProvider.

protected function mapRouterRoutes()
{
    Route::prefix('router')
         ->middleware('web')
         ->namespace('AppHttpControllersRouter')
         ->group(base_path('app/router/routes.php'));
}

Этот метод определяет префикс маршрута, промежуточное ПО, пространство имен контроллеров и путь к файлу routes.php. Мы указали 'AppHttpControllersRouter' как пространство имен контроллеров, чтобы все контроллеры, содержащиеся в папке app/Http/Controllers/Router, использовались для этих маршрутов.

Шаг 5: Создайте контроллер для маршрутов, использующихся в папке router/

php artisan make:controller Router/TestController

Шаг 6: Откройте файл routes.php в папке router/ и определите маршруты, используя созданный контроллер.

use AppHttpControllersRouterTestController;

Route::get('test', [TestController::class, 'test']);

В этом примере мы определяем GET-маршрут '/test', который будет ссылаться на метод 'test' в контроллере RouterTestController.

Шаг 7 (дополнительно): Вы можете создать поддиректории в папке router/ и организовать свои маршруты внутри них. Например, вы можете создать папку router/admin и разместить административные маршруты внутри нее.

mkdir app/router/admin

В файле routes.php внутри папки router/admin/ вы можете определить маршруты, используя тот же подход, что и в основном файле routes.php.

use AppHttpControllersRouterAdminDashboardController;

Route::get('dashboard', [DashboardController::class, 'index']);

Теперь у вас должны быть рабочие маршруты, определенные в папке router/. Вы можете получить доступ к ним по пути '/router/test' и '/router/admin/dashboard'.

Это лишь один из множества способов настройки маршрутов в Laravel, но использование директорий в папке router может помочь вам организовать вашу структуру приложения и разделить маршруты на группы в соответствии с их функциональностью.