PHP Parse error: syntax error, unexpected ‘|’, expecting ‘{’

Hallo zusammen

Ich möchte auf einem frisch installierten Ubuntu 22.04 mit PHP 8.2 via Shopware Installer (shopware-installer.phar.php) die aktuell neuesten Version (6.5.7.3) installieren.
Leider läuft das in einen Fehler.

PHP Parse error: syntax error, unexpected ‘|’, expecting ‘{’

Hinweis dazu:
Ja, der von dir beschriebene Fehler tritt in PHP 8.2 aufgrund einer Änderung in der Handhabung von Union Types auf. In PHP 8.0 und 8.1 ist die Syntax `function rewrites(): bool|string` gültig und bedeutet, dass die Funktion entweder einen `bool` oder einen `string` zurückgibt.

In PHP 8.2 wurde jedoch eine neue Syntax für Union Types eingeführt, die sogenannte "Intersection Types". Das bedeutet, dass das Pipe-Symbol (`|`) in einigen Kontexten anders interpretiert werden kann, was zu Syntaxfehlern führen kann, wenn der Code nicht entsprechend angepasst wird.

Um diesen Fehler zu beheben, solltest du überprüfen, ob deine Shopware-Version mit PHP 8.2 kompatibel ist. Wenn das nicht der Fall ist, kannst du entweder auf eine kompatible PHP-Version (wie 8.0 oder 8.1) herunterstufen oder auf eine neuere Shopware-Version aktualisieren, die mit PHP 8.2 kompatibel ist.

Laut Shopware Systemvoraussetzungen:

Sollte eigentlich PHP 8.1 und höhere funktionieren.
Wie geschrieben ist es mit der 8.2 gar nicht möglich, da die Syntax in PHP 8.2 fehlerhaft ist.

Dann also mit 8.1 versucht.
Fehlermeldung:
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version „>= 8.2.0“. You are running 8.1.26

Wenn jemand Lösungsansätze hat, dann gibt es ein Weihnachtsgeschenk von mir.

Forum und Google lieferten keine relevanten Ansätze, die hätten zur Lösung führen können.

Gruß
Tom

Hi Tom,

kannst du mal die ganze Fehlermeldung posten. Also was genau den Fehler wirft?
Stehen dort weitere Details dabei?

PHP Version zur Sicherheit nochmal über die Konsole auslesen - was du dort einsetzt.

Grüße

Moin

PHP Version 8.1.26
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version „>= 8.2.0“. You are running 8.1.26. in phar:///shopware-pfad-xy/shopware-installer.phar.php/vendor/composer/platform_check.php on line 37

PHP 8.2.13
PHP Parse error: syntax error, unexpected ‚|‘, expecting ‚{‘ in /shopware-pfad-xy/shopware-installer.phar.php on line 39

Hi,

php -v mal per SSH ausführen und schauen was dort angezeigt wird.

Grüße

1 Like

Da sollte das gleiche stehen, was die phpinfo Datei ausgibt - oder liege ich da falsch?

Nein - die PHP Version auf der SSH Shell kann abweichen.

2 Likes

Perfekt! Das war es!
Die CLI Version war tatsächlich noch auf 7.4
Tausend Dank

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.