Рейтинг:0

Как сделать так, чтобы экспорт конфигурации устанавливал два модуля, один из которых зависит от другого?

флаг cn

Я написал собственный модуль, который использует jwt.транскодер обслуживание от jwt модуль. В свою очередь, он предоставляет еще одну услугу:

$ cat mymodule.services.yml
Сервисы:
  мой модуль.jwt:
    класс: Drupal\mymodule\Services\Jwt
    аргументы: [ '@jwt.transcoder', '@event_dispatcher' ]

В процессе разработки все прошло гладко. Однако ни модуль jwt, ни мой новый пользовательский модуль не были установлены на нашем сайте до того, как я начал разрабатывать эту функцию.

Я добавил оба модуля с композитором и сделал экспорт конфигурации, чтобы включить их (и настроить криптографические ключи и т. д.). Однако, когда я иду выполнять развертывание, я получаю сообщение об ошибке при импорте конфигурации, которое, по-видимому, происходит из-за зависимости от jwt.транскодер сервис, который еще не установлен на данный момент.

В строке 86 CheckExceptionOnInvalidReferenceBehaviorPass.php:
                                                                                      
  Служба «mymodule.jwt» зависит от несуществующей службы «jwt.transcoder». 

С нашим процессом развертывания мы можем развертывать только одну кодовую базу за раз — это означает, что если я хочу выполнить импорт конфигурации, чтобы получить jwt установлен первым, и еще один импорт конфигурации с включением моего пользовательского модуля, мне пришлось бы выполнить второе развертывание, чтобы получить эту вторую кодовую базу конфигурации на сервере.

Есть ли способ заставить импорт конфигурации сначала установить jwt, а затем мой пользовательский модуль в одной кодовой базе, чтобы эта зависимость была устранена?

sonfd avatar
флаг in
Помечен ли «jwt» как зависимость «mymodule» в mymodule.info.yml?
флаг cn
@sonfd это было! Спасибо. Пожалуйста, укажите это в ответе, и я приму его :)
Рейтинг:3
флаг in

Вам необходимо отметить jwt модуль как зависимость mymodule в mymodule.info.yml, через зависимости ключ.

зависимости: список других модулей, от которых зависит ваш модуль. Зависимости от модулей Drupal core или contrib должны иметь пространство имен в формате {project}:{module}, где {project} – это имя проекта, отображаемое в URL-адресе Drupal.org (например, drupal.org/project/views), а { module} — это машинное имя модуля. Зависимости также могут включать ограничения версии, например, веб-форма: веб-форма (> = 8.x-5.x). Обратите внимание: если ваш модуль имеет зависимости от других модулей или библиотек, они должны быть объявлены в файле composer.json модуля. Если у вас есть локальные пользовательские модули, которые зависят друг от друга, вы можете использовать {module}:{module} (или {module}:{submodule} для подмодулей.)

Источник: Сообщите Drupal о вашем модуле с помощью файла .info.yml

Например, внутри вашего mymodule.info.yml:

Название: Мой модуль
тип: модуль
...
зависимости:
  - джвт: джвт

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.