Добавление своих команд для CLI в Joomla 4 и Joomla 5 с помощью плагина

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В 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: общение с пользователем в консоли, оформление вывода информации

Часть команд CLI  ядра Joomla 5
Часть команд CLI ядра Joomla 5

Список литературы

  1. Прежде всего код ядра Joomla является сам по себе документацией. PHP-классы CLI команд ядра лежат в директории libraries/src/Console. Смотрим их, изучаем и используем в качестве образца.

  2. Статья Joomla 4: мощь CLI приложений: в ней вкратце описываются возможности работы с CLI в Joomla, используемый синтаксис консольных команд. А так же статью дополняет список команд компонента Akeeba Backup.

  3. Официальная документация Joomla. В ней вкратце описывается процесс создания плагина группы console для Joomla 4+ для добавления своих команд в CLI. Также в статье есть небольшое видео.

  4. Статья Создание WebCron плагина для Joomla 4 (Task Scheduler Plugin). В Joomla 4.1 появился планировщик задач - Task Scheduler. Можно написать плагин задачи и управлять параметрами и расписанием задачи через админку, а в CLI или в CRON вызывать только одну команду: php /path/to/site/public_html/cli/joomla.php scheduler:run. Это альтернативный путь решения задач данной статьи.

  5. Официальная документация Joomla CLI example - Onoffbydate и её перевод Пример написания CLI для Joomla 4 - Onoffbydate приводит пример создания плагина Joomla CLI, с помощью которого можно выключать / выключать модуль в зависимости от даты и времени года по CRON.

  6. Статья Jiji, your new Joomla! 4 Console friend в официальном журнале международного Joomla-сообщества Joomla Community Magazine. В статье показывается пример создания hello world. Поскольку сама статья без примеров кода, стоит посмотреть GitHub этого плагина, где есть простой пример работы с материалами Joomla, например, импорт статей Joomla из файла. Чем больше перед глазами примеров реализации, тем проще создать что-то своё.

  7. Статья Создание плагинов с учётом новой структуры Joomla 4 рассказывает о том, как вообще создать плагин для Joomla 4 / Joomla 5 по новым правилам так, чтобы он проработал не один год и позволил отключить поддержку legacy (плагин обратной совместимости), что ощутимо увеличит быстродействие Joomla.

Создание плагина группы console для Joomla 4 / Joomla 5

Добавление команд происходит с помощью плагина. Файловая структура его в целом типичная для Joomla. В Joomla внедрена библиотека из PHP фреймворка Symfony, поэтому тем, кто уже сталкивался с CLI в Symfony - в Joomla себя будет чувствовать как у себя дома

Источник: https://habr.com/ru/articles/797155/


Интересные статьи

Интересные статьи

Москва, Россия, 22 января 2024 – Контакт Центр "Открытая Линия", ведущий инноватор в области клиентских коммуникаций, с гордостью объявляет о запуске революционной технологии на базе искусственного ин...
Очень часто нас спрашивают о хороших веб-сайтах для новичков по изучению программирования графики. Разумеется, мы бы с радостью порекомендовали GPUOpen, но правда в том, что основная целевая аудитория...
Всем привет от команды ЮMoney!Делимся докладами с нашего недавнего митапа Red Hot Chili Apples для iOS-разработчиков.Кому рекомендуем посмотреть:• Всем, кто мечтает научиться генерировать код сразу д...
Недавно во время обсуждения по решению проблем, связанных с таймаутами запросов в Azure SQL Database, я подумала — интересно, можете ли вы найти запросы, время ожидания которых истекло, в Query Store ...
В данной статье рассмотрены в общих чертах процесс создания резервных копий кластера Kubernetes и более детально процесс создания копий PV с помощью Velero.В дальнейшем резервные копии могут быть испо...