# 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.

- Source canonique : [https://allaux.fr/prestashop/migration/passer-a-php-8](https://allaux.fr/prestashop/migration/passer-a-php-8)
- Langue : FR
- Dernière mise à jour : 2026-08-03

## Réponse directe

> Aucune 1.7 ne tourne sous PHP 8, y compris la 1.7.8 qui plafonne à PHP 7.4 : il faut migrer PrestaShop vers 8 ou 9 avant de changer la version de PHP, jamais l’inverse. PrestaShop 8 demande PHP 7.2.5 au minimum et prend en charge 8.0 à 8.2 ; PrestaShop 9 exige PHP 8.1 au minimum. Chaque module tiers reste ensuite à vérifier un par un.

## 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.

| Valeur | Description |
|---|---|
| 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 |

Source : Documentation officielle PrestaShop

## Comment je procède

1. **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.
2. **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.
3. **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.
4. **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.
5. **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.

## Rester sur une vieille version de PHP n’est pas une solution durable

> Un hébergeur qui retire une version de PHP le fait parce que l’éditeur du langage lui-même arrête d’en assurer la maintenance. Rester dessus signifie s’exposer à des failles de sécurité qui ne seront plus jamais corrigées, même si l’hébergeur la tolère encore quelque temps.

## 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. ([/prestashop/migration/1-7-vers-8](/prestashop/migration/1-7-vers-8))
- **Modules incompatibles** — Comment identifier et remplacer les modules qui ne migrent pas vers la nouvelle version. ([/prestashop/migration/modules-incompatibles](/prestashop/migration/modules-incompatibles))
- **Changer d’hébergeur en migrant PrestaShop** — Pourquoi il vaut souvent mieux séparer migration de version et changement d’hébergeur. ([/prestashop/migration/changer-d-hebergeur](/prestashop/migration/changer-d-hebergeur))

## FAQ

### Puis-je juste demander à mon hébergeur d’activer PHP 8 sur ma boutique en 1.7 ?

Non. Aucune version de PrestaShop 1.7 ne fonctionne sous PHP 8, Smarty plante immédiatement. Il faut d’abord migrer PrestaShop vers la version 8 au minimum avant d’envisager PHP 8.

### Quelle version de PHP dois-je viser selon ma version de PrestaShop ?

PrestaShop 1.7.8, la plus récente de sa branche, se limite à PHP 7.4. PrestaShop 8 accepte PHP 7.2.5 au minimum, avec prise en charge de PHP 8.0, 8.1 et, à partir de la 8.2, de PHP 8.2. PrestaShop 9 exige PHP 8.1 au minimum et prend en charge jusqu’à PHP 8.4.

### Une fois PrestaShop migré, mes modules fonctionneront-ils automatiquement sous PHP 8 ?

Pas forcément. Certains modules anciens utilisent une syntaxe d’accès aux tableaux avec accolades, supprimée en PHP 8. Chaque module doit être vérifié individuellement, même s’il se déclare compatible avec la version de PrestaShop installée.

### Comment savoir si mon hébergeur va bientôt retirer PHP 7 ?

Ce genre de retrait est généralement annoncé à l’avance, par e-mail ou via une notification dans le panneau d’administration de l’hébergement, avec une date limite indiquée.

### Comment tester la compatibilité PHP 8 sans risquer la boutique en ligne ?

Je travaille sur une copie complète de la boutique, où je force l’exécution en PHP 8 pour observer les erreurs réelles et corriger ce qui bloque, avant toute bascule sur le serveur de production.
