Добавление произвольных требований при установке модуля в 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

Апрель 24, 2025 г.

Чтобы через админку почистить длинные словари, нужно много времени, даже если вы используете bulk операции. Потому будем чистить их через код. Разберем пример кода: [crayon-6af8d8236ddce450348827/] Эти две команды удаляют все термины из словаря ...

Читать

VK Video: интегрируем как oembed provider source в Drupal

Апрель 12, 2025 г.

Еще один oembed провайдер, который мне понадобился не давно - VK VIDEO. Нужно было интегрировать видео с ВКонтакте в медиа библиотеку Drupal. Если ...

Читать

Табличное редактирование мультиполей в Drupal через Paragraphs и Field Group

Октябрь 14, 2025 г.

Иногда при работе с Drupal возникает необходимость оформить ввод набора однотипных данных — например, списка характеристик, параметров или цен — не в виде ...

Читать

Эффективное кеширование по доступу к ноде: параметрический Cache Context в Drupal

Июль 26, 2025 г.

Когда мы используем кеширование в Drupal, типичный подход — добавить user в список контекстов: ['user']. Это означает, что для каждого пользователя будет ...

Читать
 

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

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



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