Zurück zum Blog

So beheben Sie den Fehler „PHP-Version erfüllt diese Anforderung nicht“ in Composer für Drupal-Projekte

2023-09-093 Min. Lesezeit

Für diejenigen, die Drupal-Websites erstellen, ist Composer unerlässlich. Es hilft, neue Website-Komponenten wie Module und Themes zu verwalten und hinzuzufügen. Wenn Sie sich jedoch jemals über die Funktionsweise von Composer im Unklaren waren, stellen Sie sich es als einen hilfreichen Lebensmitteleinkäufer vor. Sie sind sich der Analogie nicht sicher? Lesen Sie diesen Artikel: „Understanding Composer: A Simple Analogy of Grocery Shopping for Better Dependency Management”.

Wenn wir unsere Arbeit jedoch von unserer lokalen Umgebung auf den Server verschieben, kann manchmal der Fehler „PHP-Version erfüllt diese Anforderung nicht“ auftreten:

Installieren von Abhängigkeiten aus der Lock-Datei (einschließlich require-dev)
Überprüfung, ob der Inhalt der Lock-Datei auf der aktuellen Plattform installiert werden kann.
Ihre Lock-Datei enthält keinen kompatiblen Satz von Paketen. Bitte führen Sie composer update aus.
PHP-Version erfüllt diese Anforderung nicht' Fehler in Composer für Drupal
PHP-Version erfüllt diese Anforderung nicht’ Fehler in Composer für Drupal

Dieser Fehler bedeutet, dass die PHP-Version in Ihrem lokalen Setup von der auf dem Server abweicht, was zu Problemen mit Ihrer Drupal-Website führt.

Warum tritt der Fehler „PHP-Version erfüllt diese Anforderung nicht“ in Composer für Drupal auf?

Wenn Sie an einem Drupal-Projekt arbeiten und lokal composer update ausführen, richtet Composer die Datei composer.lock basierend auf der von Ihnen verwendeten PHP-Version ein. Wenn diese Lock-Datei in einer Umgebung mit einer anderen PHP-Version verwendet wird, treten Probleme auf.

Lösungen für Drupal-Entwickler:

  1. PHP-Versionen synchronisieren: Verwenden Sie dieselbe PHP-Version in allen Umgebungen – egal ob lokal, in der Staging- oder Produktionsumgebung. Diese Ausrichtung verhindert Diskrepanzen und stellt sicher, dass Drupal-Module und -Themes konsistent funktionieren. Lokal ist die Anpassung der PHP-Version bei Verwendung von ddev unkompliziert. Sie können mit dem Befehl auf PHP-Version 8.1 wechseln:
ddev config --php-version 8.1
  1. Composers Plattformkonfiguration verwenden: Wenn Sie nicht dieselbe PHP-Version in allen Umgebungen verwenden können, können Sie Composer so konfigurieren, dass eine bestimmte PHP-Version nachgeahmt wird. Fügen Sie in der Datei composer.json Ihres Drupal-Projekts Folgendes hinzu:
"config": {
    "platform": {
        "php": "8.1.0"
    }
}
  1. Jetzt löst Composer Abhängigkeiten so auf, als ob PHP 8.1 ausgeführt würde, auch wenn Ihre lokale Version anders ist.
  2. Änderungen übertragen & Drupal aktualisieren: Committen und übertragen Sie die geänderten Dateien composer.json und composer.lock. Wenn Sie sie auf dem Server ziehen, führen Sie composer install aus, um sicherzustellen, dass Drupal den richtigen Satz von Abhängigkeiten erhält.
  3. PHP-Kompatibilität von Drupal-Modulen regelmäßig überprüfen: Während Core-Drupal-Updates im Allgemeinen gut getestet sind, können beigetragene Module manchmal Kompatibilitätsprobleme aufweisen. Überprüfen Sie regelmäßig die Composer-Anforderungen des Moduls und testen Sie Updates lokal, bevor Sie sie bereitstellen.
  4. Kontinuierliche Integration für Drupal: Tools wie Acquia Pipelines oder Drupal-fokussierte CI-Lösungen können dazu beitragen, die Konsistenz der PHP-Version zu erzwingen und sicherzustellen, dass Ihr Drupal-Projekt über alle Bereitstellungen hinweg fehlerfrei bleibt.

Fazit:

Die Arbeit mit Drupal und Composer bedeutet, dass Sie auf die Übereinstimmung der PHP-Versionen achten müssen. Durch vorausschauende Planung können Ihre Website-Updates reibungsloser und mit weniger Problemen ablaufen. Am besten ist es, die PHP-Version überall gleich zu halten, um die Entwicklung zu vereinfachen.

Viel Erfolg beim Debugging!