Skip to content

Консольные команды

JournalPHP использует Artisan — стандартный CLI Laravel.

Запуск команд

В dev-окружении:

bash
docker compose exec app php artisan <команда>

В production:

bash
docker compose -f docker-compose.prod.yml exec app php artisan <команда>

Команды JournalPHP

Расположены в app/Console/Commands/. Запускаются вручную или по расписанию через Laravel Scheduler.

Пользователи

СигнатураНазначение
users:unbanСнятие временных банов, срок которых истёк
users:purge-deletedБезвозвратное удаление soft-deleted аккаунтов

Рейтинг

СигнатураНазначение
rating:update-place-historyПересчёт и сохранение истории рейтинговых мест пользователей

Подписки

СигнатураНазначение
subscriptions:payments:check-pendingПроверка pending-платежей и постановка задач в очередь
subscriptions:auto-renewЗапуск цикла автопродления подписок

Опции subscriptions:payments:check-pending:

ОпцияПо умолчаниюНазначение
--queue=subscription-paymentssubscription-paymentsОчередь для фоновой обработки платежей
--minutes=1010Сколько минут учитывать при поиске pending-платежей

Контент

СигнатураНазначение
post-counts:refreshПересчёт денормализованных счётчиков постов
topics:update-activity-scoreОбновление score активности сообществ (за 7 дней)

Медиа

СигнатураНазначение
media:cleanup-orphaned {--limit=500}Удаление медиафайлов, не привязанных ни к одной сущности

Модерация

СигнатураНазначение
moderation:comments {--sync}Запуск AI-модерации комментариев из очереди

Стандартные команды Laravel

База данных

bash
php artisan migrate --force          # Применить миграции
php artisan migrate:status           # Статус миграций
php artisan db:seed                  # Запустить сиды
php artisan migrate:rollback         # Откатить последнюю партию миграций

Кэш

bash
php artisan optimize:clear
php artisan cache:clear
php artisan route:cache
php artisan view:cache
php artisan config:cache

Приложение

bash
php artisan key:generate
php artisan storage:link
php artisan about

Очереди и WebSocket

bash
php artisan horizon
php artisan reverb:start
php artisan queue:work
php artisan queue:failed
php artisan queue:retry all

Поиск (Scout)

bash
php artisan scout:import "App\Models\Post"     # Переиндексировать посты
php artisan scout:flush "App\Models\Post"      # Очистить индекс

Интерактивная консоль

bash
docker compose exec app php artisan tinker

Позволяет выполнять PHP-код в контексте приложения — удобно для отладки и ручных операций с данными.

Список всех команд

bash
docker compose exec app php artisan list

Расписание (Scheduler)

Автоматический запуск команд настраивается в app/Console/Kernel.php. Текущее расписание:

КомандаИнтервал
users:unbanкаждый час
rating:update-place-historyкаждую минуту
subscriptions:payments:check-pendingкаждую минуту
subscriptions:auto-renewкаждый час
users:purge-deletedкаждый час
media:cleanup-orphanedкаждые 30 минут
topics:update-activity-scoreдважды в день
moderation:commentsкаждую минуту

Для работы планировщика в production добавьте крон:

bash
* * * * * docker exec <container_name> php artisan schedule:run >> /dev/null 2>&1

Или через Docker:

bash
docker compose exec app php artisan schedule:run

Файл routes/console.php используется только для регистрации closure-команд Artisan, а не для расписания.

Released under the MIT License.