Обработка запросов
Теперь рассмотрим обработку запросов и отрисовку контента модулями.
Во Flute нет ничего обычного. Существуют route
и Controller
. Сами роуты инициализируются либо в файлике routes.php
, либо напрямую вызывая метод router()
.
Роуты
Рассмотрим как выглядит базовая структура роутов:
примечание
Мы рассмотрим роуты в контексте модуля (не в админ-панели), поэтому важное замечане.
Каждый роут должен быть уникален. Это означает, что в модуле shop не может быть роута с путем /
, может быть только shop/
.
<?php
$router->group(function ($router) {
$router->middleware(HasPermissionMiddleware::class);
$router->group(function (RouteGroup $admin) {
$admin->get('/', [IndexView::class, 'index']);
$admin->get('/settings', [MainSettingsView::class, 'index']);
$admin->group(function (RouteGroup $adminModule) {
$adminModule->get('/list', [ModulesView::class, 'list']);
}, '/modules');
});
});
Что можно делать с роутами:
- Группировать
- Вешать на них
Middleware
- Создавать роуты только на определенный метод (GET / POST / PUT / DELETE)
- Создавать роуты, дающие только интерфейс
view()
- И многое другое...
В аргумент каждого метода должны передаваться:
- Путь до контроллера
- Функция
Пример роута с методом GET
на путь /somepath
:
router()->get('/somepath', [
SomeController::class, // Путь до нашего контроллера
'index' // Метод, который будет вызываться в этом контроллере на этом пути
])
Не вижу смысла расписывать каждую функцию. Вы можете посмотреть какие методы существуют в роутах в файлике app\Core\Router\RouteGroup.php
.