Выделяю время на обслуживание сайта, потом кучу статей на тему Drupal приходится писать. И людям помочь, и самому не забыть. Вашему вниманию представляется незаменимый в некоторых случаях модуль Ludwig.
https://www.drupal.org/project/ludwig
Текущие версии:
- Drupal 8: 8.x-1.12 Stable release covered by the Drupal Security Team released 8 January 2022
- Drupal 9 и 10: 2.0.3 Stable release covered by the Drupal Security Team released 8 January 2022
Данный модуль представляет собой ручную альтернативу Composer. Многие модули часто требуют внешних библиотек PHP, для их установки и работы требуется Composer, который скачивает нужные библиотеки и их зависимости. Иногда Composer нет возможности использовать, например, если у вас хостинг без доступа к SSH и нет возможности установить и воспользоваться Composer. Или, например, Drupal развёрнут на ОС Windows, там, конечно, есть возможность установить Composer, если есть админский доступ и если с этой самой установкой разобраться.
Так вот, Ludwig может делать то же самое, что и Composer: скачивать в устанавливаемый модуль нужные сторонние PHP библиотеки и их зависимости. Он не такой мощный, удобный и автоматический, как Composer, но работает достаточно хорошо.
Если у вас есть Composer, то модуль Ludwig вам не нужен.
Название модуля авторы объясняют так:
Ludwig van Beethoven was a **deaf composer**.
Не все модули можно установить с помощью Ludwig, а только те, которые поддерживаются: Address, Add to Cal, Advanced CSS/JS Aggregation, Barcodes, Booking and Availability Management Tools for Drupal, Commerce Core, CSV Serialization, External Entities, Feeds extensible parsers, Geofield, GeoIP API, Geolocation Field, Get Tweets, Layout Builder Component Attributes, Mailchimp, Mobile Detect, OAuth2 Server, PHPMailer SMTP, reCAPTCHA v3, SendGrid Integration, Smart Date, SMTP Authentication Support, Symfony Mailer, Views Simple Math Field
Поддерживаемые модули должны иметь в корне файл ludwig.json, в котором указывается список нужных PHP библиотек, например:
{
"require": {
"doctrine/collections": {
"version" : "v1.6.1",
"url": "https://github.com/doctrine/collections/archive/v1.6.1.zip"
},
"commerceguys/addressing": {
"version": "v1.1.0",
"url": "https://github.com/commerceguys/addressing/archive/v1.1.0.zip"
}
}
}
Если модуль не имеет официальную поддержку Ludwig, можно поискать для него ludwig.json на форумах, или написать самому.
Как пользоваться
- Скачать и установить Ludwig как обычное расширение.
- Скачать модули, которые требуют зависимых PHP библиотек, но не устанавливать их.
- Посмотреть отчёт о статусах пакетов: Reports → Packages (admin/reports/packages), при этом зависимые PHP пакеты загрузятся в свои модули.
- Если какие-то библиотеки отмечены как потерянные (missing) — нажать кнопку "Download missing packages".
- Установить модули.