Maison >développement back-end >tutoriel php >Comment résoudre le dysfonctionnement de l'application Laravel après la mise à niveau de PHP 8 ?

Comment résoudre le dysfonctionnement de l'application Laravel après la mise à niveau de PHP 8 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-17 16:45:02725parcourir

How to Resolve Laravel Application Dysfunction After PHP 8 Upgrade?

L'application Laravel ne fonctionne pas après la mise à niveau de PHP 8

Problème :

Suite à une mise à jour vers PHP 8 sur un macOS machine, une application Laravel devient non fonctionnelle, provoquant les messages d'erreur suivants :

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

Solution :

Ce problème survient en raison des modifications implémentées dans Laravel 6, 7 et 8 qui prennent en charge le système de types révisé de PHP 8. Pour résoudre le problème, les étapes suivantes doivent être suivies :

  1. Mettre à jour composer.json :

Ajouter la compatibilité PHP 8 au "php" entrée dans composer.json, garantissant la prise en charge de PHP 7.4 et 8.0 :

"php": "^7.4|^8.0",
  1. Exécuter la mise à jour du compositeur :

Mettre à jour Laravel vers son dernière version :

composer update
  1. Mettre à jour des bibliothèques spécifiques :

Les applications Laravel utilisent généralement les bibliothèques suivantes :

  • PHP : mise à jour vers ^8.0
  • Faker : mise à jour vers fakerphp/faker :^1.9.1
  • PHPUnit : mise à jour vers phpunit/phpunit :^9.3
  1. Vérifiez les mises à jour supplémentaires de la bibliothèque :

Consultez les autres bibliothèques installées pour connaître les mises à jour requises qui activent la prise en charge de PHP 8.

Explication :

PHP 8 introduit des modifications dans son système de types, notamment les types d'union, les types mixtes et les méthodes obsolètes dans la classe ReflectionParameter de l'API Reflection :

ReflectionParameter::getClass()
ReflectionParameter::isArray()
ReflectionParameter::isCallable()

En remplacement, ReflectionParameter::getType () doit être utilisé, qui a été introduit dans PHP 7.0 et fournit des informations de type précises.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn