Назад к блогу

Как исправить ошибку «PHP Version Does Not Satisfy That Requirement» в Composer для проектов Drupal

2023-09-093 мин чтения

Для тех, кто создает веб-сайты на Drupal, Composer является незаменимым инструментом. Он помогает управлять и добавлять новые компоненты веб-сайта, такие как модули и темы. Но если вы когда-либо чувствовали себя потерянным в том, как работает Composer, представьте его себе как полезного помощника в продуктовом магазине. Не уверены в аналогии? Ознакомьтесь с этой статьей: “Understanding Composer: A Simple Analogy of Grocery Shopping for Better Dependency Management”.

Однако иногда, при переносе нашей работы из локальной среды на сервер, мы можем столкнуться с ошибкой «PHP Version Does Not Satisfy That Requirement»:

Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
PHP Version Does Not Satisfy That Requirement' Error in Composer for Drupal
PHP Version Does Not Satisfy That Requirement’ Error in Composer for Drupal

Эта ошибка означает, что версия PHP в вашей локальной настройке отличается от версии на сервере, что вызывает проблемы с вашим веб-сайтом Drupal.

Почему возникает ошибка «PHP Version Does Not Satisfy That Requirement» в Composer для Drupal?

При работе над проектом Drupal, если вы запускаете composer update локально, Composer создает файл composer.lock на основе используемой вами версии PHP. Когда этот файл используется в среде с другой версией PHP, возникают проблемы.

Решения для разработчиков Drupal:

  1. Синхронизация версий PHP: Старайтесь использовать одну и ту же версию PHP во всех средах — будь то локальная, промежуточная или рабочая. Это предотвращает несоответствия и гарантирует, что модули и темы Drupal будут работать согласованно. Локально, при использовании ddev, настройка версии PHP проста. Вы можете переключиться на версию PHP 8.1 с помощью команды:
ddev config --php-version 8.1
  1. Использование конфигурации платформы Composer: Если вы не можете использовать одну и ту же версию PHP во всех средах, вы можете настроить Composer для имитации определенной версии PHP. В файле composer.json вашего проекта Drupal включите:
"config": {
    "platform": {
        "php": "8.1.0"
    }
}
  1. Теперь Composer будет разрешать зависимости так, как будто он работает с PHP 8.1, даже если ваша локальная версия другая.
  2. Отправка изменений и обновление Drupal: Зафиксируйте и отправьте измененные файлы composer.json и composer.lock. Когда вы вытягиваете их на сервер, запустите composer install, чтобы убедиться, что Drupal получает правильный набор зависимостей.
  3. Регулярная проверка совместимости модулей Drupal с PHP: Хотя основные обновления Drupal, как правило, хорошо протестированы, у дополнительных модулей иногда могут быть проблемы с совместимостью. Регулярно проверяйте требования Composer модуля и тестируйте обновления локально перед развертыванием.
  4. Непрерывная интеграция для Drupal: Такие инструменты, как Acquia Pipelines или решения CI, ориентированные на Drupal, могут помочь обеспечить согласованность версий PHP, гарантируя, что ваш проект Drupal останется без ошибок во всех развертываниях.

Заключение:

Работа с Drupal и Composer означает внимательное отношение к соответствию версий PHP. Планируя заранее, вы сможете более плавно обновлять свой веб-сайт, с меньшим количеством проблем. Лучше всего поддерживать одинаковую версию PHP везде для более легкой разработки.

Удачного отладки!

Категории: