Passer PrestaShop à PHP 8
Aucune version de la branche PrestaShop 1.7, de 1.7.0 à 1.7.8, ne fonctionne sous PHP 8. Quand un hébergeur retire progressivement PHP 7 de son offre, une boutique encore en 1.7 se retrouve devant un choix qui n’a rien d’un simple réglage : migrer la version de PrestaShop, ou rester sur une version de PHP non maintenue.
Pourquoi ce n’est jamais juste un réglage côté hébergeur
Sur une installation PrestaShop 1.7, forcer PHP 8 dans les réglages de l’hébergement ne fonctionne pas : Smarty, le moteur de template utilisé par 1.7, plante immédiatement. La version 1.7.8, la plus récente de la branche, ne supporte au mieux que PHP 7.4. Il n’existe donc aucune combinaison possible entre PrestaShop 1.7 et PHP 8 : ce n’est pas un problème de configuration à ajuster, c’est une incompatibilité de fond entre le code de la version et le langage qui l’exécute.
La compatibilité arrive avec PrestaShop 8.0, qui introduit la prise en charge de PHP 8.0 et 8.1, avec PHP 7.2.5 comme minimum requis pour cette version. PrestaShop 8.2, sorti en septembre 2024, ajoute la prise en charge complète de PHP 8.2. PrestaShop 9.0, plus récent, exige PHP 8.1 au minimum et prend en charge PHP 8.2, 8.3 et 8.4. Passer à PHP 8 suppose donc d’abord de migrer PrestaShop lui-même vers la version 8 au minimum, avant même de parler de configuration serveur.
Le sujet ne s’arrête pas à la version de PrestaShop
Une fois PrestaShop lui-même compatible avec PHP 8, le travail n’est pas terminé pour autant. Beaucoup de modules plus anciens utilisent une syntaxe d’accès aux tableaux ou aux chaînes avec des accolades, du type $array{0} au lieu de $array[0]. Cette syntaxe a été supprimée en PHP 8 et provoque une erreur fatale si un module l’utilise encore. Chaque module tiers doit donc être vérifié, et parfois corrigé, indépendamment de sa déclaration officielle de compatibilité avec la version de PrestaShop installée : un module peut se dire compatible PrestaShop 8 tout en contenant encore ce genre de syntaxe héritée.
C’est pour ça que la migration se joue en deux temps distincts : d’abord la version de PrestaShop, ensuite une vérification module par module de la compatibilité réelle avec PHP 8, pas seulement déclarative.
- 1.7.0 → 1.7.8 aucune version ne fonctionne sous PHP 8
- PHP 7.4 version PHP la plus récente supportée par PrestaShop 1.7.8
- PrestaShop 8.0 minimum PHP 7.2.5, prise en charge de PHP 8.0 et 8.1 ; PHP 8.2 à partir de la 8.2
- PrestaShop 9.0 minimum PHP 8.1, prise en charge jusqu’à PHP 8.4
Documentation officielle PrestaShop
Comment je procède
-
Vérifier la version PrestaShop actuelle
Je détermine la version installée et la compare aux versions PHP qu’elle supporte réellement, pas à celles annoncées par l’hébergeur.
-
Migrer PrestaShop d’abord
Si la boutique est encore en 1.7, je migre vers la version 8 au minimum sur une copie de test, sans toucher au serveur de production.
-
Copier l’environnement et forcer PHP 8
Sur cette copie, je fais pointer l’exécution vers PHP 8 pour observer les erreurs réelles avant tout passage en production.
-
Vérifier chaque module tiers
Je passe en revue les modules installés, je repère les syntaxes obsolètes comme les accès aux tableaux avec accolades, et je corrige ou remplace ce qui bloque.
-
Basculer en production une fois validé
La bascule vers PHP 8 côté hébergeur n’intervient qu’après validation complète sur la copie, jamais en amont.
Savoir si votre hébergeur prévoit de retirer une version de PHP
Le retrait d’une version de PHP par un hébergeur est presque toujours annoncé à l’avance, généralement par e-mail ou dans une notification visible depuis le panneau d’administration de l’hébergement. Ces annonces donnent en général une date limite avant laquelle il faut avoir changé de version. C’est ce délai qu’il faut utiliser pour migrer PrestaShop dans de bonnes conditions, plutôt que d’attendre que le changement soit imposé du jour au lendemain.
Pour aller plus loin
-
Migration 1.7 vers 8
Le détail de ce qui change concrètement entre PrestaShop 1.7 et 8.
-
Modules incompatibles
Comment identifier et remplacer les modules qui ne migrent pas vers la nouvelle version.
-
Changer d’hébergeur en migrant PrestaShop
Pourquoi il vaut souvent mieux séparer migration de version et changement d’hébergeur.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.