Как исправить ошибку «PHP Version Does Not Satisfy That Requirement» в Composer для проектов Drupal
Для тех, кто создает веб-сайты на 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 в вашей локальной настройке отличается от версии на сервере, что вызывает проблемы с вашим веб-сайтом Drupal.
Почему возникает ошибка «PHP Version Does Not Satisfy That Requirement» в Composer для Drupal?
При работе над проектом Drupal, если вы запускаете composer update
локально, Composer создает файл composer.lock
на основе используемой вами версии PHP. Когда этот файл используется в среде с другой версией PHP, возникают проблемы.
Решения для разработчиков Drupal:
- Синхронизация версий PHP: Старайтесь использовать одну и ту же версию PHP во всех средах — будь то локальная, промежуточная или рабочая. Это предотвращает несоответствия и гарантирует, что модули и темы Drupal будут работать согласованно. Локально, при использовании
ddev
, настройка версии PHP проста. Вы можете переключиться на версию PHP 8.1 с помощью команды:
ddev config --php-version 8.1
- Использование конфигурации платформы Composer: Если вы не можете использовать одну и ту же версию PHP во всех средах, вы можете настроить Composer для имитации определенной версии PHP. В файле
composer.json
вашего проекта Drupal включите:
"config": {
"platform": {
"php": "8.1.0"
}
}
- Теперь Composer будет разрешать зависимости так, как будто он работает с PHP 8.1, даже если ваша локальная версия другая.
- Отправка изменений и обновление Drupal: Зафиксируйте и отправьте измененные файлы
composer.json
иcomposer.lock
. Когда вы вытягиваете их на сервер, запуститеcomposer install
, чтобы убедиться, что Drupal получает правильный набор зависимостей. - Регулярная проверка совместимости модулей Drupal с PHP: Хотя основные обновления Drupal, как правило, хорошо протестированы, у дополнительных модулей иногда могут быть проблемы с совместимостью. Регулярно проверяйте требования Composer модуля и тестируйте обновления локально перед развертыванием.
- Непрерывная интеграция для Drupal: Такие инструменты, как Acquia Pipelines или решения CI, ориентированные на Drupal, могут помочь обеспечить согласованность версий PHP, гарантируя, что ваш проект Drupal останется без ошибок во всех развертываниях.
Заключение:
Работа с Drupal и Composer означает внимательное отношение к соответствию версий PHP. Планируя заранее, вы сможете более плавно обновлять свой веб-сайт, с меньшим количеством проблем. Лучше всего поддерживать одинаковую версию PHP везде для более легкой разработки.
Удачного отладки!