Добавление произвольных требований при установке модуля в Drupal

Иногда модуль в Drupal требует наличия специфических сущностей или конфигураций, например — определённого текстового формата. Поскольку текстовые форматы являются конфигурационными сущностями (entities), напрямую указать их как зависимость в .info.yml невозможно. Однако в вашем модуле можно реализовать проверку на наличие нужных условий во время установки — с помощью hook_requirements().

Использование hook_requirements() для проверки условий установки

Начиная с поздних версий Drupal 8, hook_requirements() позволяет задавать пользовательские требования на разных стадиях работы с модулем, включая установку (install), обновление (update) и обычную проверку (runtime).

Вот пример, как сгенерировать ошибку установки модуля, если не найден определённый текстовый формат.

Хук создаётся в файле MODULE.install:

Как это работает

Гибкость: Можно проверять любые условия — существование ролей, нод, конфигураций и даже внешние API, если нужно.

Фаза установки (install): Проверка выполняется только при установке модуля.

Отсутствие формата: Если текстовый формат с машинным именем content_format не найден, выводится ошибка с уровнем REQUIREMENT_ERROR.

Поведение при установке через Drush

Если модуль устанавливается через Drush, такие ошибки не остановят процесс полностью — система предложит вам выбор: продолжить установку несмотря на проблему или прервать её. Это удобно при работе в окружениях разработки, но требует осторожности на продакшене.


hook_requirements() — мощный способ обеспечить корректность установки модуля в Drupal. Он позволяет проверять произвольные условия, которые нельзя выразить в .info.yml, и предупреждать администратора о возможных ошибках на раннем этапе. Такой подход делает модули надёжнее и улучшает поддержку в долгосрочной перспективе.

Написать комментарий

Мало букафф? Читайте есчо !

Добавить произвольную ссылку в меню на этапе препросессинга в Drupal

Март 17, 2025 г.

Иногда бывает потребность создать ссылку из кода. Структура ссылки довольно сложная на этапе препроцессинга шаблона меню, делюсь сниппетом кода. Потребуются следующие зависимости: [crayon-68278cdacb689927396994/] Добавим ссылку в меню main. ...

Читать

SpecialCharacters плагин в CKE5. Добавляем символы.

Апрель 11, 2025 г.

В CKEditor 5 есть родной плагин, который отображает список спец. символов для вставки в редактор. Он удобен и прост, проблема лишь в том, что он содержит ...

Читать

 

Комментарии к «Добавление произвольных требований при установке модуля в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: