Artisan-команды Laravel: что уже есть из коробки
Прежде чем писать свою консольную команду, стоит проверить, не делает ли это Laravel сам. Разбираем встроенные Artisan-команды 11.x: что делают, когда пригодятся и где легко ошибиться.

Половину задач, ради которых разработчики пишут кастомные скрипты, Laravel решает встроенными командами Artisan. Речь про очистку кеша, генерацию файлов, работу с очередями, диагностику маршрутов и планировщик. Разберём, что даёт Artisan в Laravel 11.x без единой строчки вашего кода, где эти команды выигрывают у ручных решений и какой ценой. Полный список у вас всегда под рукой: наберите php artisan list и получите актуальный набор для вашей версии и установленных пакетов.
Материал раскрывает один угол: что доступно из коробки и когда это применять. Написание собственных команд через make:command — отдельная тема, здесь её не разворачиваем.
Как вообще смотреть, что есть
Artisan — это CLI-обёртка над приложением. Каждая команда живёт в своём неймспейсе: cache:, make:, queue:, migrate: и так далее. Три команды, с которых стоит начать в незнакомом проекте:
php artisan list— весь список, сгруппированный по неймспейсам;php artisan help migrate— подробности по конкретной команде: аргументы, опции, флаги;php artisan about— сводка по окружению: версия PHP, драйверы кеша и очередей, включён ли debug. Появилась в Laravel 9, удобна для быстрой диагностики чужого проекта.
Флаг --help работает у любой команды и показывает точную сигнатуру. Это надёжнее, чем полагаться на память: набор опций у migrate и db:seed между минорными версиями иногда менялся.
Прежде чем писать свой скрипт очистки или экспорта, потратьте минуту на php artisan list. Шанс, что нужное уже есть, выше, чем кажется.
Кеш и конфигурация: что чистить и когда
Самая частая путаница у новичков — какой именно кеш чистить. В Laravel их несколько, и команды разные:
| Команда | Что делает | Когда нужна |
|---|---|---|
config:cache | Собирает все конфиги в один файл | На проде, для скорости загрузки |
config:clear | Удаляет собранный конфиг | Когда изменили .env, а он не применяется |
route:cache | Кеширует таблицу маршрутов | Прод, ускоряет резолвинг роутов |
view:clear | Чистит скомпилированные Blade-шаблоны | Странности в вёрстке после правок |
cache:clear | Чистит кеш приложения (драйвер из config) | Сбросить закешированные данные |
optimize:clear | Разом сбрасывает config, route, view, cache и events | «Что-то не применяется, снеси всё» |
Главная ловушка: после config:cache Laravel перестаёт читать .env напрямую — все значения берутся из собранного файла. Поменяли переменную в .env на проде, а поведение не изменилось — почти всегда виноват незапущенный config:clear. Отсюда правило: config:cache уместен только в деплой-скрипте, а не в локальной разработке, где .env меняется постоянно.
Команда optimize в Laravel 11 объединяет кеширование config, routes, views и events одним вызовом — обратная сторона optimize:clear. Держите обе в pipeline деплоя.
Генерация файлов: make: вместо копипасты
Неймспейс make: генерирует заготовки классов с правильным неймспейсом и базовым классом. Это не про экономию пяти строк — это про то, что сгенерированный контроллер точно унаследован от нужного базового класса, а миграция получит корректную временную метку в имени.
# Контроллер с ресурсными методами (index, store, show и т.д.)
php artisan make:controller ProductController --resource
# Модель, миграция, фабрика и ресурсный контроллер разом
php artisan make:model Product -mfc
# Миграция с готовым шаблоном создания таблицы
php artisan make:migration create_orders_table
# FormRequest для валидации
php artisan make:request StoreProductRequest
# Класс для очереди
php artisan make:job ProcessPayment
Флаг -mfc у make:model — сокращение для --migration --factory --controller. Полный список флагов конкретной команды смотрите через php artisan make:model --help: набор зависит от версии, и придумывать флаги наугад — верный способ получить The "--foo" option does not exist.
Что генерируется, но часто забывается
Помимо очевидных контроллеров и моделей, из коробки есть генераторы, о которых вспоминают не сразу:
make:test— тестовый класс (по умолчанию Pest или PHPUnit в зависимости от установки);make:policy— класс авторизации для модели;make:middleware— заготовка middleware с методомhandle;make:eventиmake:listener— событие и обработчик;make:command— заготовка вашей собственной Artisan-команды.
Миграции и база: migrate и его родня
Здесь цена ошибки максимальна, потому что команды меняют данные. Разница между ними на проде критична:
migrate— накатывает новые миграции. Безопасно, данные не трогает;migrate:rollback— откатывает последний батч миграций. Может удалить таблицы;migrate:fresh— дропает все таблицы и накатывает миграции заново. На проде это потеря всех данных;migrate:refresh— откатывает всё и накатывает снова, сохраняя схему батчей;migrate:status— показывает, какие миграции применены. Читать безопасно.
migrate:fresh и migrate:refresh — команды для локальной среды и тестов. В продовом окружении Laravel по умолчанию потребует подтверждения при запуске деструктивных команд, но флаг --force это подтверждение снимает. Никогда не ставьте --force в скрипт, который может случайно уйти на прод с migrate:fresh.
Очереди и планировщик
Если проект использует очереди, эти команды — рабочая лошадка:
queue:work— запускает воркер, который берёт задачи из очереди. Держится в памяти, код перечитывает только при перезапуске;queue:restart— мягко просит все воркеры завершиться после текущей задачи. Обязателен в деплое, иначе воркер крутит старый код;queue:failed— список упавших задач;queue:retry all— повторяет упавшие задачи.
Про планировщик: в Laravel 11 расписание задач переехало в routes/console.php (в 10.x и раньше жило в app/Console/Kernel.php). Запускается всё одной cron-строкой раз в минуту через schedule:run. Проверить, что именно и когда запустится, помогает schedule:list — покажет расписание в человеко-читаемом виде, не дожидаясь наступления времени.
Что стоит запускать при разборе чужого проекта
Пришли на незнакомый проект — три команды дадут картину быстрее, чем чтение конфигов:
php artisan about— версии, драйверы, окружение;php artisan route:list— все маршруты, контроллеры и middleware в одной таблице. Флаг--path=apiотфильтрует по префиксу;php artisan migrate:status— синхронизирована ли схема БД с кодом.
Что делать дальше
Прогоните php artisan list на своём проекте и отметьте команды из установленных пакетов — многие (Horizon, Telescope, Sanctum) добавляют свои неймспейсы. Занесите в деплой-скрипт связку config:cache → route:cache → view:cache → queue:restart, а на откат — optimize:clear. И только когда убедились, что нужного из коробки нет, беритесь за make:command под свою задачу.
Разрушитель авто-разводов: Фото заказ-наряда СТО: завышения, дубли работ, лишние позиции.
Спросить за 15 ₽Источники: Laravel Artisan Console — официальная документация, Laravel Task Scheduling — официальная документация
Частые вопросы
У меня Laravel 10, а не 11 — команды те же?
Изменил .env, но приложение не видит новое значение. Почему?
Чем optimize:clear отличается от cache:clear?
Можно ли случайно потерять данные командой migrate?
Не помню точное имя опции у make:model — где смотреть?
Воркер очереди работает на старом коде после деплоя. Что делать?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.