Matrice de compatibilité des versions PHP pour PrestaShop (1.6 à 9.x)

414 vues

Matrice de compatibilité des versions PHP pour PrestaShop

Choisir la bonne version de PHP pour votre boutique PrestaShop est l'une des décisions d'infrastructure les plus critiques que vous prendrez. L'utilisation d'une version PHP incompatible peut provoquer des écrans blancs, des processus de paiement défaillants, des erreurs de modules et des vulnérabilités de sécurité. Ce guide complet couvre chaque version de PrestaShop de 1.6 à 9.x et associe chacune à ses versions PHP prises en charge, configurations recommandées et considérations de mise à jour.

Pourquoi la version PHP est importante pour PrestaShop

PHP est le langage côté serveur qui fait fonctionner PrestaShop. Chaque version majeure de PHP apporte des améliorations de performance, de nouvelles fonctionnalités du langage et déprécie les fonctions plus anciennes. Le code source de PrestaShop évolue en parallèle avec PHP, ce qui signifie que les versions plus récentes de PrestaShop tirent parti des fonctionnalités modernes de PHP tout en abandonnant le support des versions obsolètes.

L'utilisation de la mauvaise version PHP provoque trois catégories de problèmes :

  • Erreurs fatales - Les fonctions supprimées dans les nouvelles versions PHP (par exemple, les fonctions mysql_* supprimées en PHP 7.0, each() supprimée en PHP 8.0) provoquent des plantages immédiats.
  • Avertissements de dépréciation - Les fonctions dépréciées génèrent des avertissements qui peuvent casser les réponses AJAX, la sortie JSON et la génération de PDF lorsque display_errors est activé.
  • Exposition aux risques de sécurité - Les versions PHP qui ont atteint leur fin de vie ne reçoivent plus de correctifs de sécurité, laissant votre boutique vulnérable.

Matrice de compatibilité complète

PrestaShop 1.6.x

Version PrestaShopPHP 5.4PHP 5.5PHP 5.6PHP 7.0PHP 7.1PHP 7.2+
1.6.0.x - 1.6.0.14OuiOuiOuiNonNonNon
1.6.1.0 - 1.6.1.4OuiOuiOuiPartielNonNon
1.6.1.5 - 1.6.1.23OuiOuiOuiOuiOuiNon
1.6.1.24+OuiOuiOuiOuiOuiNon

PHP recommandé pour 1.6.x - PHP 7.1. Il offre le meilleur équilibre entre performance et compatibilité. L'exécution de 1.6.x sur PHP 7.2+ nécessite des modifications de fichiers core qui brisent le chemin de mise à jour et n'est pas recommandée.

PrestaShop 1.7.x

Version PrestaShopPHP 7.1PHP 7.2PHP 7.3PHP 7.4PHP 8.0+
1.7.0.x - 1.7.4.xOui (recommandé)NonNonNonNon
1.7.5.xOuiOui (recommandé)NonNonNon
1.7.6.xOuiOui (recommandé)OuiNonNon
1.7.7.xOuiOuiOui (recommandé)PartielNon
1.7.8.xOuiOuiOuiOui (recommandé)Non

Avertissement critique - Aucune version de PrestaShop 1.7 ne supporte PHP 8.0 ou ultérieur. Si vous exécutez PS 1.7.6 sur PHP 8, Smarty plantera immédiatement car le moteur de templates utilise des fonctions supprimées en PHP 8.0. La suppression de la fonction each() et les changements dans le fonctionnement de array_key_exists() avec les objets provoquent des erreurs fatales.

PrestaShop 8.x

Version PrestaShopPHP 7.2PHP 7.3PHP 7.4PHP 8.0PHP 8.1PHP 8.2PHP 8.3
8.0.0 - 8.0.2Oui (min)OuiOuiOuiPartielNonNon
8.0.3 - 8.0.5Oui (min)OuiOuiOuiOui (recommandé)NonNon
8.1.0 - 8.1.2NonOui (min)OuiOuiOui (recommandé)PartielNon
8.1.3 - 8.1.7NonOui (min)OuiOuiOui (recommandé)OuiPartiel

PHP recommandé pour 8.x - PHP 8.1. C'est le point idéal offrant une compatibilité complète, un support de sécurité actif et d'excellentes performances avec la compilation JIT. PHP 8.1 apporte les fibres, les enums, les propriétés en lecture seule et les types d'intersection que PrestaShop 8 peut exploiter.

PrestaShop 9.x

Version PrestaShopPHP 8.1PHP 8.2PHP 8.3PHP 8.4
9.0.xOui (min)OuiOui (recommandé)Oui

PHP recommandé pour 9.x - PHP 8.3 ou 8.4. PrestaShop 9 fonctionne sur Symfony 6.4 LTS et requiert PHP 8.1 comme minimum. PHP 8.4 apporte les Property Hooks et la visibilité asymétrique que les futures mises à jour de PrestaShop exploiteront.

Dates de fin de vie PHP à connaître

Version PHPSupport actif jusqu'àCorrectifs de sécurité jusqu'àStatut (2026)
PHP 7.4Nov 2021Nov 2022EOL - Dangereux
PHP 8.0Nov 2022Nov 2023EOL - Dangereux
PHP 8.1Nov 2023Déc 2025EOL - Migrer bientôt
PHP 8.2Déc 2024Déc 2026Sécurité seulement
PHP 8.3Déc 2025Déc 2027Sécurité seulement
PHP 8.4Déc 2026Déc 2028Support actif

Si vous utilisez PHP 7.4 ou 8.0 en 2026, vous fonctionnez sur une version non supportée qui ne reçoit plus de correctifs de sécurité. C'est un risque critique pour toute boutique e-commerce traitant des données de paiement.

Comment vérifier votre version PHP actuelle

Méthode 1 - Back Office PrestaShop

Naviguez vers Paramètres avancés > Informations. La section Informations du serveur affiche votre version PHP, ainsi que la limite de mémoire, le temps d'exécution maximum et d'autres paramètres pertinents.

Méthode 2 - Fichier PHP Info

Créez un fichier nommé phpinfo.php dans le répertoire racine de votre boutique avec ce contenu :

<?php phpinfo();

Accédez-y via votre navigateur à https://votreboutique.com/phpinfo.php. Supprimez ce fichier immédiatement après vérification - il expose des détails sensibles de configuration du serveur.

Méthode 3 - Ligne de commande

php -v
php -r "echo PHP_VERSION;"

Notez que la version PHP CLI peut différer de la version PHP du serveur web. Vérifiez toujours via l'interface web ou phpinfo().

Problèmes courants avec la mauvaise version PHP

Écran blanc de la mort (WSOD)

Le symptôme le plus courant d'incompatibilité PHP. Vérifiez votre journal d'erreurs PHP (généralement à /var/log/php-errors.log ou accessible via votre panneau d'hébergement). Erreurs typiques :

Fatal error: Uncaught Error: Call to undefined function mysql_connect()
Fatal error: Uncaught Error: Call to undefined function each()
Fatal error: Cannot use "parent" when current class scope has no parent

Les avertissements de dépréciation cassent AJAX

Lorsque display_errors = On et que vous mettez à jour PHP, les notices de dépréciation sont ajoutées aux réponses AJAX. Cela casse le parsing JSON dans le back office, provoquant l'échec silencieux de fonctionnalités comme la recherche de produits, la recherche de clients et la création de commandes. La solution :

; php.ini
display_errors = Off
log_errors = On
error_log = /chemin/vers/php-error.log

Incompatibilité des modules

Les modules tiers peuvent ne pas supporter votre version PHP. Avant de mettre à jour PHP, vérifiez la compatibilité de chaque module installé. Zones problématiques courantes :

  • Modules utilisant create_function() - supprimée en PHP 8.0
  • Modules utilisant les fonctions mysql_* - supprimées en PHP 7.0
  • Modules utilisant l'accès positionnel aux chaînes avec accolades $str{0} - supprimé en PHP 8.0
  • Modules ne gérant pas les types de retour nullable - plus strict à partir de PHP 8.1+

Comment mettre à jour PHP pour PrestaShop en toute sécurité

Étape 1 - Auditer votre configuration actuelle

Avant de modifier quoi que ce soit, documentez votre environnement actuel :

php -v                    # Version PHP actuelle
php -m                    # Extensions chargées
php -i | grep memory      # Limite de mémoire
php -i | grep max_exec    # Limite du temps d'exécution

Étape 2 - Vérifier la compatibilité des modules

Examinez chaque module installé. Consultez la documentation du développeur du module pour le support des versions PHP. Si un module n'a pas été mis à jour depuis plus de deux ans, il est probablement incompatible avec PHP 8.x.

Étape 3 - Tester d'abord en staging

Ne mettez jamais à jour PHP sur votre serveur de production sans test préalable. Créez une copie de staging de votre boutique et testez avec la nouvelle version PHP. Vérifiez :

  • Les pages du front office se chargent correctement
  • Pages produits, pages catégories, pages CMS
  • Le processus de panier et de commande se termine complètement
  • Les modules de paiement traitent les transactions de test
  • Les fonctionnalités du back office fonctionnent (édition de produits, gestion des commandes)
  • Tous les modules tiers fonctionnent correctement
  • Les tâches cron s'exécutent sans erreur

Étape 4 - Mise à jour avec plan de retour en arrière

La plupart des hébergeurs vous permettent de changer de version PHP depuis le panneau de contrôle (cPanel, Plesk, DirectAdmin). Gardez la version PHP précédente disponible pour un retour rapide si des problèmes surviennent.

Étape 5 - Vider tous les caches après la mise à jour

Après le changement de version PHP, videz chaque couche de cache :

# Vider le cache PrestaShop
rm -rf var/cache/prod/* var/cache/dev/*

# Vider les templates Smarty compilés
rm -rf var/cache/smarty/compile/* var/cache/smarty/cache/*

# Si vous utilisez OPcache, redémarrer PHP-FPM
systemctl restart php8.3-fpm

# Vider le cache CDN (Cloudflare, etc.)

Meilleures pratiques de configuration PHP pour PrestaShop

Quelle que soit la version PHP choisie, ces paramètres sont essentiels pour des performances optimales de PrestaShop :

; paramètres php.ini recommandés
memory_limit = 512M
max_execution_time = 300
max_input_vars = 10000
post_max_size = 32M
upload_max_filesize = 32M

; Paramètres OPcache (critiques pour les performances)
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 16229
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1

; Extensions requises
extension = intl
extension = zip
extension = gd
extension = curl
extension = mbstring
extension = openssl
extension = pdo_mysql
extension = fileinfo

Considérations pour les développeurs de modules

Si vous développez des modules PrestaShop, vous devez considérer attentivement la compatibilité PHP :

  • Version PHP minimum - Ciblez PHP 7.2 comme minimum pour les modules devant fonctionner sur PrestaShop 8.0+, ou PHP 8.1 pour les modules exclusifs à PrestaShop 9.
  • Utilisez PHPStan ou Psalm - Les outils d'analyse statique détectent les incompatibilités de version PHP avant vos utilisateurs.
  • Évitez la syntaxe spécifique à une version - Les fonctionnalités comme les expressions match (PHP 8.0), les enums (PHP 8.1) et les propriétés readonly (PHP 8.1) limitent votre module à ces versions PHP et supérieures.
  • Testez sur plusieurs versions - Utilisez des conteneurs Docker avec différentes versions PHP pour tester votre module sur toute la plage de compatibilité.

Questions fréquemment posées

Puis-je exécuter PrestaShop 1.7 sur PHP 8 ?

Non. Aucune version de PrestaShop 1.7 ne supporte officiellement PHP 8.0 ou ultérieur. Bien que certains utilisateurs aient appliqué des correctifs pour le faire fonctionner partiellement, cela n'est pas supporté et causera des problèmes lors des mises à jour. Le bon chemin est de migrer vers PrestaShop 8.x.

Dois-je utiliser PHP 8.4 avec PrestaShop 8.1 ?

Déconseillé. PrestaShop 8.1 a été développé et testé principalement avec PHP 8.1. Bien que PHP 8.2 soit partiellement supporté dans les versions 8.1.x ultérieures, PHP 8.4 introduit des changements qui peuvent causer des problèmes avec les composants Symfony plus anciens. Restez avec PHP 8.1 pour PrestaShop 8.x.

PHP 8.x est-il beaucoup plus rapide que 7.x ?

Les benchmarks montrent que PHP 8.1 est environ 20-30% plus rapide que PHP 7.4 pour les charges de travail PrestaShop typiques. Le compilateur JIT offre le plus d'avantages pour les tâches de calcul. Pour les opérations liées aux E/S (requêtes de base de données, lectures de fichiers), l'amélioration est plus faible mais néanmoins mesurable.

La mise à jour de PHP nécessite-t-elle une mise à jour de PrestaShop ?

Pas nécessairement, mais les deux vont de pair. Vous pouvez mettre à jour PHP dans la plage supportée pour votre version PrestaShop sans mettre à jour PrestaShop lui-même. Cependant, si vous souhaitez utiliser une version PHP moderne (8.3+), vous aurez besoin de PrestaShop 8.1 ou 9.x.

Cette réponse vous a-t-elle été utile ?

Vous avez encore des questions ?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top