Wie kann eine Funktionsstörung der Laravel-Anwendung nach einem PHP 8-Upgrade behoben werden?

Patricia Arquette
Freigeben: 2024-10-17 16:45:02
Original
700 Leute haben es durchsucht

How to Resolve Laravel Application Dysfunction After PHP 8 Upgrade?

Laravel-Anwendung funktioniert nach PHP 8-Upgrade nicht

Problem:

Nach einem Update auf PHP 8 auf einem macOS Maschine wird eine Laravel-Anwendung nicht mehr funktionsfähig, was zu den folgenden Fehlermeldungen führt:

Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 871

Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 945

Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 871

Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 945
Nach dem Login kopieren

Lösung:

Dieses Problem tritt aufgrund von Änderungen auf, die in Laravel 6 implementiert wurden. 7 und 8, die das überarbeitete Typsystem von PHP 8 berücksichtigen. Um das Problem zu beheben, sollten die folgenden Schritte unternommen werden:

  1. Composer.json aktualisieren:

PHP 8-Kompatibilität zum „php“ hinzufügen Eintrag in Composer.json, der die Unterstützung für PHP 7.4 und 8.0 gewährleistet:

"php": "^7.4|^8.0",
Nach dem Login kopieren
  1. Composer-Update ausführen:

Laravel auf seinen Stand aktualisieren neueste Version:

composer update
Nach dem Login kopieren
  1. Bestimmte Bibliotheken aktualisieren:

Laravel-Anwendungen nutzen normalerweise die folgenden Bibliotheken:

  • PHP: Update auf ^8.0
  • Faker: Update auf fakerphp/faker:^1.9.1
  • PHPUnit: Update auf phpunit/phpunit:^9.3
  1. Suchen Sie nach zusätzlichen Bibliotheksaktualisierungen:

Überprüfen Sie andere installierte Bibliotheken auf erforderliche Updates, die PHP 8-Unterstützung ermöglichen.

Erklärung:

PHP 8 führt Änderungen an seinem Typsystem ein, einschließlich Union-Typen, gemischter Typen und veralteter Methoden in der ReflectionParameter-Klasse der Reflection-API:

ReflectionParameter::getClass()
ReflectionParameter::isArray()
ReflectionParameter::isCallable()
Nach dem Login kopieren

Als Ersatz ReflectionParameter::getType () sollte verwendet werden, das in PHP 7.0 eingeführt wurde und genaue Typinformationen liefert.

Das obige ist der detaillierte Inhalt vonWie kann eine Funktionsstörung der Laravel-Anwendung nach einem PHP 8-Upgrade behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage