Passer au contenu principal

Comment mettre à jour PHP de la version 7.x à 8.5

Mis à jour il y a plus de 2 mois

La mise à jour de la version PHP de votre site web de 7.x à 8.5 est un processus complexe en plusieurs étapes, car il s'agit d'une évolution majeure. PHP 8 introduit des changements importants ; une planification minutieuse est donc indispensable pour éviter toute interruption de service. Cette mise à jour vous garantit une sécurité renforcée, des performances améliorées et la pérennité de votre site web.

Pré-requis

  • Accès à votre Hub Funio

  • Accès à cPanel

  • Accès SSH

Accomplissement de la tâche: dépend de votre expertise

Expertise: avancée

Comment faire?

  1. Connectez-vous à votre cPanel.

  2. Dans la section Logiciels, allez sur Sélectionner une version de PHP.

  3. Prenez en note votre version PHP actuelle et les extensions PHP activés.

  4. Vérifiez si vous utilisez un CMS (comme Wordpress, Joomla, Drupal, etc.)

  5. Si vous utilisez un CMS, vérifiez les plugins et thèmes installés.

  6. Vérifiez la configuration requise pour PHP.

Sauvegardez votre site web

  1. Dans cPanel > Fichiers > Assistant de sauvegarde

  2. Cliquez sur Back Up et suivez les instructions.

Auditer la compatibilité des applications

PHP 8.4 introduit des modifications de syntaxe et de comportement. Vérifiez la compatibilité de votre CMS (système de gestion de contenu).

  • CMS version minimal : WordPress 6.4+, Joomla 4.4+, Drupal 10+, etc.

  • Plugins/Thèmes/Extensions : Compatibilité avec PHP 8.4 requise.

  • Code personnalisé : Veuillez vérifier la présence de fonctions obsolètes.

Incompatibilités courantes

  • create_function() retiré

  • each() retiré

  • Modifications dans la gestion des types et le traitement des erreurs

  • Fonctions et fonctionnalités obsolètes

Outils recommandés

Chemin de mise à niveau recommandé

PHP 7.0 > 7.4 > 8.0 > 8.1 > 8.2 > 8.3 > 8.4

Cela minimise les erreurs fatales et simplifie le débogage.

PHP 7.0 à 7.4

Corriger les problèmes hérités :

  • each() retiré

  • create_function() retiré

  • anciennes fonctions MySQL (mysql_*)

  • Dépréciation des décalages de chaîne entre accolades

  • Ancienne gestion des tableaux/chaînes

PHP 7.4 à 8.0 (Plus grande rupture de compatibilité)

  • Application stricte des types

  • Erreurs fatales au lieu d'avertissements

  • Modifications de la gestion des erreurs

  • Fonctions supprimées

  • Modifications de l'API interne

🔵 Objectif : Vous ne devez pas avoir d'erreurs fatales dans la version 8.0

PHP.net - Migrer de PHP 7.4 à PHP 8.0

PHP 8.0 à 8.1

  • Null implicites obsolètes

  • Nouveaux avertissements (warnings)

  • Application du type de retour

  • comportement plus strict des fonctions internes

🔵 Objectif : Nettoyer les journaux de dépréciation

PHP 8.1 à 8.2

Critique:

Propriétés dynamiques obsolètes

$obj->newProperty = 'value'; // obsolète

Comment corriger ?

class MyClass {

public string $newProperty;

}

🔵 Objectif : Pas d'avertissements de propriété dynamique

PHP 8.2 à 8.3

  • Améliorations des performances

  • Optimisations du moteur

  • Ruptures de compatibilité minimales

🔵 Objectif : Stabilité

PHP 8.3 à 8.4

  • Améliorations des performances

  • Améliorations de la gestion de la mémoire

  • Comportements stricts du moteur

🔵 Objectif : Durcissement en production

PHP 8.4 à 8.5

  • Compatibilité future

  • Nouvelles fonctionnalités

  • Optimisations du moteur

  • Améliorations de la sécurité

🔵 Objectif : Stabilité à long terme

Dépannage et problèmes courants

  1. Activer les journaux d'erreurs

  2. Vérifier les erreurs fatales dans les fonctions dépréciées

  3. Erreurs de connexion aux bases de données

  4. Mettre à jour le noyau du CMS

  5. Mettre à jour les plugins/modules

  6. Supprimer les extensions obsolètes

  7. Supprimer les plugins et thèmes obsolètes et non pris en charge

🔵 Note : Si quelque chose ne fonctionne pas, vous pouvez temporairement revenir à votre version précédente. Si vous n'avez pas d'expérience avec ce processus, nous vous recommandons de contacter votre développeur.

Avez-vous trouvé la réponse à votre question ?