PHPSpreadsheet, Composer und Probleme mit PHP 7.x

PHPSpreadsheet will PHP 8?

Vor kurzem habe ich unser Formmail-Script für PHP 8 fit gemacht. Anscheinend etwas zu fit, am Ende war es nur für PHP 8 kompatibel, wie die Fehlermeldung zeigte:

Fatal error: Composer detected issues in your platform: 
Your Composer dependencies require a PHP version ">= 8.0.0". 
You are running 7.4.32.

Mittels Composer habe ich geschaut, welche Bibliothek dies verursacht:

composer show --tree

Es stellt sich raus, dass PHPSpreadsheet die Ursache war. Zwar nicht direkt, aber durch die Bibliothek “psr/simple-cache”.

phpoffice/phpspreadsheet 1.24.1 PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
└──psr/simple-cache ^1.0 || ^2.0
   └──php >=8.0.0

Auf meinem Entwicklerungsrechner ist PHP 8 installiert, daher hat er auch die Version 2.0 von “simple-cache” gezogen, welche PHP 8 erfordert. Da ich das Script komplett ausliefere, der Anwender soll am Ende kein Composer selbst benötigen, war das Script damit inkompatibel mit PHP 7.x.

Allerdings funktioniert PHPSpreadsheet auch mit der 1.0er Version von “simple-cache”. Diese benötigt maximal PHP 5.x. Lande Rede kurzer Sinn, ich habe in der “comoser.json” Datie die Version auf 1.0 festgelegt.

"psr/simple-cache": "^1.0"

Anschließend habe ich die Abhängigkeiten neu installiert.

composer install

Und siehe da, der Abhängigkeitsbaum zeigte nun keine Abhängigkeit mehr für PHP 8.x an.

phpoffice/phpspreadsheet 1.25.2 PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
└──psr/simple-cache ^1.0 || ^2.0 || ^3.0
   └──php >=5.3.0
psr/simple-cache 1.0.1 Common interfaces for simple caching
└──php >=5.3.0

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert