В Joomla, как и во многих других PHP фреймворках и движках, уже довольно давно (с версий 1.7.x) существует возможность работы с помощью CLI - Command line interface. Конечно, вряд ли в эту статью попадут люди совсем не знакомые с консолью сервера и командной строкой, но для справки оговорюсь, что при работе с Joomla через CLI не затрагиваются ресурсы веб-сервера (Apache, Nginx etc.), запускается отдельный процесс php (или несколько отдельных), в котором не действуют ограничения на время выполнения скрипта веб-сервера (чаще всего это 60 секунд).
Поэтому с помощью CLI решают те задачи, решение которых в веб-интерфейсе (из админки) Joomla нецелесообразно из-за возможных ограничений веб-сервера - так называемые "тяжелые" задачи. Это может быть миграция большого количества контента со старой версии Joomla на новую, синхронизация данных с внешним источником по API (синхронизация цен и остатков, выгрузка заказов), работа с файлами и каталогами, выполнение пакетных заданий на больших объёмах (десятки-сотни тысяч или даже миллионы позиций) и т.д. - всё то, что может занимать много времени и ресурсов сервера.
Оглавление
Список литературы
Создание плагина группы console для Joomla 4 / Joomla 5
XML-манифест плагина
Файл services/provider.php
Файл плагина src/Extension/Testconsole.php
Файлы с классами команд для Joomla CLI
Метод configure(). Добавление опций и аргументов команды.
Метод doExecute(). Основная работа команды.
SymfonyStyle: общение с пользователем в консоли, оформление вывода информации

Список литературы
Прежде всего код ядра Joomla является сам по себе документацией. PHP-классы CLI команд ядра лежат в директории
libraries/src/Console. Смотрим их, изучаем и используем в качестве образца.
Статья Joomla 4: мощь CLI приложений: в ней вкратце описываются возможности работы с CLI в Joomla, используемый синтаксис консольных команд. А так же статью дополняет список команд компонента Akeeba Backup.
Официальная документация Joomla. В ней вкратце описывается процесс создания плагина группы
consoleдля Joomla 4+ для добавления своих команд в CLI. Также в статье есть небольшое видео.Статья Создание WebCron плагина для Joomla 4 (Task Scheduler Plugin). В Joomla 4.1 появился планировщик задач - Task Scheduler. Можно написать плагин задачи и управлять параметрами и расписанием задачи через админку, а в CLI или в CRON вызывать только одну команду:
php /path/to/site/public_html/cli/joomla.php scheduler:run. Это альтернативный путь решения задач данной статьи.Официальная документация Joomla CLI example - Onoffbydate и её перевод Пример написания CLI для Joomla 4 - Onoffbydate приводит пример создания плагина Joomla CLI, с помощью которого можно выключать / выключать модуль в зависимости от даты и времени года по CRON.
Статья Jiji, your new Joomla! 4 Console friend в официальном журнале международного Joomla-сообщества Joomla Community Magazine. В статье показывается пример создания
hello world. Поскольку сама статья без примеров кода, стоит посмотреть GitHub этого плагина, где есть простой пример работы с материалами Joomla, например, импорт статей Joomla из файла. Чем больше перед глазами примеров реализации, тем проще создать что-то своё.Статья Создание плагинов с учётом новой структуры Joomla 4 рассказывает о том, как вообще создать плагин для Joomla 4 / Joomla 5 по новым правилам так, чтобы он проработал не один год и позволил отключить поддержку legacy (плагин обратной совместимости), что ощутимо увеличит быстродействие Joomla.
Создание плагина группы console для Joomla 4 / Joomla 5
Добавление команд происходит с помощью плагина. Файловая структура его в целом типичная для Joomla. В Joomla внедрена библиотека из PHP фреймворка Symfony, поэтому тем, кто уже сталкивался с CLI в Symfony - в Joomla себя будет чувствовать как у себя дома
