Sylius 2 : pourquoi passer à PHP 8.2 minimum ?
Sylius 2 exige PHP 8.2 minimum parce que son socle l'impose : Symfony 7 et API Platform 4, sur lesquels il repose, ne fonctionnent pas en dessous de PHP 8.2, et PHP 8.1 ne reçoit plus aucun correctif depuis le 31 décembre 2025. Mais 8.2 est un plancher, pas une cible : PHP 8.2 perd lui aussi son support de sécurité le 31 décembre 2026, le même jour que Sylius 1.14. Pour une boutique qui migre maintenant, je vise PHP 8.3 au moins, ce qui ouvre aussi la porte à Sylius 2.3.
Je suis développeur Sylius indépendant et j'ai mené des montées de version 1.x vers 2.x de boutiques en production. La question de la version de PHP revient à chaque fois, souvent posée par le dirigeant sous une autre forme : « faut-il changer d'hébergement ? ». Voici la réponse technique, puis ce qu'elle veut dire pour vous.
Que dit la documentation officielle de Sylius sur PHP ?
Le guide officiel UPGRADE-2.0 est très bref sur ce point : Sylius 2.0 relève la version minimale de PHP à 8.2 et abandonne Symfony 5.4, pour ne garder que Symfony 6.4 et 7.1. Le fichier composer.json de Sylius 2.0 le traduit par une contrainte "php": "^8.2", là où Sylius 1.14 demandait ^8.1.
La suite de la branche 2.x durcit encore l'exigence. Le fichier UPGRADE-2.3 indique que la version minimale passe de 8.2 à 8.3 pour Sylius 2.3. Le même document précise que Symfony UX 3, que Sylius 2.3 accepte, demande PHP 8.4 : une boutique en PHP 8.3 reste simplement sur Symfony UX 2, sans rien faire.
| Version de Sylius | PHP minimum | Ce que cela implique |
|---|---|---|
| 1.14 | 8.1 | Point de départ de la migration |
| 2.0, 2.1, 2.2 | 8.2 | 2.0 et 2.1 ne reçoivent plus de correctifs, 2.2 jusqu'à fin mars 2027 |
| 2.3 | 8.3 | Cible que je recommande |
Pourquoi PHP 8.2 et pas PHP 8.1 ?
Sylius n'a pas choisi ce chiffre au hasard. Il hérite des exigences de ses deux briques principales. Symfony 7.0 et Symfony 7.4, la version à support long, déclarent PHP 8.2 minimum, comme le rappelle la page de publication de Symfony 7.4. API Platform 4, qui remplace la version 2.7 dans Sylius 2, demande aussi PHP 8.2. Un Sylius qui accepte Symfony 7 ne peut donc pas descendre plus bas.
La seconde raison est la sécurité. La page versions supportées de php.net est sans ambiguïté : PHP 8.1 est en fin de vie depuis le 31 décembre 2025. Une plateforme de commerce qui manipule des comptes clients et des paiements ne peut pas raisonnablement imposer à ses utilisateurs une version de PHP qui ne reçoit plus de correctifs.
Pourquoi viser PHP 8.3 plutôt que 8.2 ?
C'est le piège que je vois le plus souvent : on lit « 8.2 minimum », on monte en 8.2 et on pense le sujet réglé. Or le calendrier officiel de PHP donne ceci :
| Version de PHP | Fin des correctifs de sécurité |
|---|---|
| 8.2 | 31 décembre 2026 |
| 8.3 | 31 décembre 2027 |
| 8.4 | 31 décembre 2028 |
| 8.5 | 31 décembre 2029 |
Monter en PHP 8.2 aujourd'hui, c'est donc s'offrir quelques semaines de répit avant de devoir recommencer. PHP 8.3 donne une année de plus et permet Sylius 2.3. PHP 8.4 va plus loin encore, à condition que vos plugins et vos dépendances le supportent. Je choisis la version avec vous selon ce que votre hébergement accepte, et je détaille l'arbitrage complet dans l'article sur le choix de la version cible de Sylius 2.
Pour vous, dirigeant, la conséquence est simple : la question n'est pas « faut-il passer en PHP 8.2 ? », mais « mon serveur peut-il passer en PHP 8.3 ou 8.4 cette année ? ». Si la réponse est non, c'est l'hébergement qu'il faut traiter en premier, et cela se planifie avant la migration.
Comment monter de version PHP sans casser la boutique ?
Faire l'inventaire de tous les endroits où PHP est déclaré
La version de PHP n'est pas écrite à un seul endroit. Elle apparaît dans le composer.json, parfois dans une option config.platform.php qui fige la résolution des dépendances, dans un Dockerfile, dans la configuration de l'hébergeur, dans la chaîne d'intégration continue et sur les serveurs qui exécutent les tâches planifiées. J'ai vu des boutiques tourner en 8.2 sur le serveur web et en 8.1 dans le cron qui exporte les commandes vers l'ERP. Sylius Upgrade Analyzer, l'outil open source que j'ai créé et publié sur le Sylius Store, contient un analyseur dédié qui relève ces déclarations dans le projet.
Monter PHP sur la 1.14, avant Sylius
Sylius 1.14 accepte les versions de PHP plus récentes que 8.1. J'en profite pour séparer les risques : d'abord la boutique 1.14 sur le nouveau PHP, testée et mise en production, puis la migration vers Sylius 2. Si une régression apparaît, on sait d'où elle vient. C'est aussi un travail livrable tout de suite, utile même si la migration prend du retard.
Traiter les dépendances qui bloquent
Le code de votre équipe passe en général sans grande difficulté de 8.1 à 8.2. Ce qui bloque, ce sont les paquets anciens, abandonnés ou figés sur une version précise. La commande composer why-not php 8.3 liste ceux qui refusent la nouvelle version. Chaque blocage devient alors une décision : mettre à jour, remplacer ou réécrire.
Auditer même si le projet tourne sur un vieux PHP
L'outil s'exécute aussi depuis une image Docker qui embarque son propre PHP. Une boutique encore en PHP 7.4 ou en Symfony 5.4 peut donc être auditée sans rien installer dans le projet. Vous savez où vous en êtes avant de toucher au serveur.
Si vous voulez savoir précisément ce que la montée de PHP implique sur votre code et votre hébergement, je peux lancer cet audit pour vous dans le cadre du diagnostic de migration Sylius 2 offert.
Faut-il changer d'hébergement pour Sylius 2 ?
Pas forcément. Beaucoup d'hébergeurs proposent déjà PHP 8.3 ou 8.4 et permettent de changer de version par site. Le problème se pose avec les offres anciennes, les serveurs administrés par un tiers qui n'a pas prévu la montée de version, ou les environnements où plusieurs applications partagent le même PHP. Dans ce dernier cas, monter la version pour la boutique peut casser une autre application. C'est un point à vérifier avec votre hébergeur dès maintenant, et pas la veille de la bascule.
Le passage de PHP n'est qu'un des prérequis de la migration. Les autres changements du socle, comme Symfony 7, sont traités dans l'article sur la compatibilité de Sylius avec Symfony 7.
Ce que je vous propose
Le 31 décembre 2026, Sylius 1.14 et PHP 8.2 perdent tous les deux leur support de sécurité. Une boutique qui n'a pas encore monté PHP a donc deux chantiers à enchaîner, et le premier conditionne le second. Je lance Sylius Upgrade Analyzer sur votre projet, je vérifie avec vous ce que votre hébergement accepte, et je vous remets un diagnostic offert avec la version de PHP et la version de Sylius à viser, et une estimation en jours. Vous décidez ensuite, avec moi ou sans moi.
