Команда mapping
mapping управляет дисковым кешем маршрутов: собирает его перед деплоем (build),
чистит (clean) и показывает таблицу роутов (show). В проде готовый кеш избавляет
роутер от сканирования на старте.
Что такое mapping и зачем
mapping — команда управления кешем таблицы маршрутов.
Проблема. Сканировать контроллеры и собирать маршруты через рефлексию на каждый старт — трата времени в проде. А при отладке хочется видеть, какие роуты вообще зарегистрированы.
Решение. mapping build собирает таблицу заранее в файл, а mapping show
показывает её. Об этом и раздел.
Субкоманды
| Субкоманда | Назначение |
|---|---|
build |
Просканировать контроллеры и записать кеш в Router::cachePath() |
clean |
Удалить файл кеша ([NOT FOUND], если его нет — без ошибки) |
show [шаблон] |
Показать маршруты; необязательный фильтр по подстроке пути |
php call mapping build
php call mapping clean
php call mapping show
php call mapping show api/user # только пути, содержащие api/userПоведение
showчитает из кеша, если файл существует; иначе делает живой скан (Router::fromScan).- Шаблон обрезается от
/и матчится через вхождение в путь. - Полный трейс ошибок печатается только при
DEBUG=true.
Кеш в релизе
Собирайте кеш маршрутов на этапе сборки образа — вместе с
di build: роутер и контейнер стартуют без сканирования.
При DEBUG=true кеш не используется (живой скан на каждый запрос).
Дальше
- Маршрутизация — как собирается таблица маршрутов
- di — парная команда для кеша DI
- Консоль — обзор