Перейти к основному содержимому

Bootstrap и провайдеры

Эта страница описывает, что происходит при старте приложения.

bootstrap/app.php

Главная точка конфигурации Laravel application.

Подключает routes:

  • routes/web.php;
  • routes/api.php;
  • routes/console.php.

Подключает глобальные middleware:

  • LoginByGkUHash;
  • Redirect.

Практический вывод: любой HTTP-запрос может быть изменён этими middleware ещё до route/controller.

bootstrap/providers.php

Регистрирует application providers.

ProviderНазначение
AppServiceProviderОбщие runtime-настройки
AppPanelProviderFilament admin panel
BannerServiceProviderBanner routes
ModernCatalogServiceProviderPublic catalog route
ModernRoadmapProvider/program routes
ProxyPageServiceProviderDynamic DB routes
HelperServiceProviderПодключение helpers
MorpherServiceProviderСервис склонений/морфологии
FortifyServiceProviderAuth actions/views без стандартных package routes
JetstreamServiceProviderProfile/team-related actions без стандартных package routes

AppServiceProvider

Делает две заметные вещи:

  • вне local окружения переопределяет Livewire update route на /v2/livewire/update;
  • задаёт default pagination для Filament tables: 50 записей.

В коде переопределение Livewire route встречается дважды. Это не меняет результат, но важно знать при чистке provider-а.

Frontend providers

ModernCatalogServiceProvider

Регистрирует route с prefix из config('systematika.modern_catalog_url').

Route named as modern-catalog и принимает {path?}. Все сегменты передаются в ModernCatalogController::view().

ModernRoadmapProvider

Регистрирует набор routes на /program:

  • index subject selector;
  • subject;
  • subject + level;
  • subject + level + mode;
  • subject + level + mode + variant.

ProxyPageServiceProvider

Регистрирует routes из БД.

Особенности:

  • не работает в console;
  • проверяет наличие таблиц landing_layouts и landing_proxy_pages;
  • читает только активные proxy pages;
  • route map зависит от данных;
  • поддерживает {path?};
  • выбирает Blade view по layout type.

BannerServiceProvider

Регистрирует routes для получения и закрытия баннеров:

  • /banner;
  • /v2/banner;
  • /close-banner;
  • /v2/close-banner.

Functions providers

HelperServiceProvider

Подключает все PHP-файлы из app/Helpers. Это значит, что глобальные helper-функции могут быть доступны без namespace.

Важные helpers:

  • status movements;
  • tariff movements;
  • URL sanitizing/normalization;
  • banner content generation;
  • academic year helpers.

MorpherServiceProvider

Регистрирует singleton morpher на базе MorpherService и настроек services.morpher.*.

Важно: аудит показал, что код читает services.morpher.*, но в видимой части config/services.php эти ключи не описаны. Для production нужно явно проверить env/config.

Auth providers

FortifyServiceProvider

Настраивает actions Fortify, но standard Fortify routes отключены.

JetstreamServiceProvider

Настраивает Jetstream-related actions, но standard Jetstream routes отключены.

Практический вывод: нельзя документировать auth как “обычный Jetstream”. В проекте свой Filament-centered admin flow и отдельный GK auto-login middleware.