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

В JohnCMS есть единая консольная точка входа:

php system/bin/console

Команда выводит список всех доступных CLI-команд и их описания.

Базовые команды

Показать список команд

php system/bin/console list

Показать справку по команде

php system/bin/console help schedule:run

Текущие команды проекта

Ниже примеры команд, доступных в текущей версии:

  • i18n:scan — сканирование исходников и генерация POT-файлов

  • i18n:translate — генерация *.lng.php из *.po

  • mail:send-pending — отправка накопившейся почтовой очереди

  • forum:cleanup-orphan-files — очистка orphan-файлов форума

  • sitemap:generate — генерация sitemap

  • schedule:list — список задач планировщика

  • schedule:run — запуск задач, которые должны выполниться в текущую минуту

  • router:list — список зарегистрированных маршрутов

  • cache:clear — очистка файлового кэша приложения

Показать все маршруты роутера

Показать маршруты с деталями

Очистить кэш приложения

Запуск в Docker

Если проект запущен через docker compose, команды обычно выполняют внутри контейнера php-fpm:

Как добавить свою команду

  1. Создайте класс, наследующий Symfony\Component\Console\Command\Command.

  2. Добавьте атрибут #[AsCommand(...)] с именем и описанием команды.

  3. Для вывода используйте SymfonyStyle.

Команды автоматически подхватываются контейнером и появляются в system/bin/console list.

Примеры в коде

Если хотите быстро посмотреть рабочие реализации, ориентируйтесь на эти классы:

  • system/src/Console/Commands/I18nScanCommand.php

  • system/src/Console/Commands/I18nTranslateCommand.php

  • system/src/Console/Commands/ScheduleListCommand.php

  • system/src/Console/Commands/ScheduleRunCommand.php

  • system/src/Console/Commands/CronSendEmailCommand.php

Для примера планировщика (расписание через атрибут) см.:

  • system/src/Scheduler/AsScheduledTask.php

  • system/src/Scheduler/ScheduleRunner.php

  • system/src/Scheduler/ScheduledTaskRegistry.php

См. также

Это было полезно?