Page 1 sur 1

Migration de PHP 7.4 vers 8.2 : pièges à anticiper ?

Publié : jeu. févr. 27, 2025 3:29 am
par antoine06
Notre équipe doit migrer une grosse codebase de PHP 7.4 vers 8.2. À part les types nullable et les attributs, quels sont les pièges qui nous attendent ? Des retours d'expérience ?

Re: Migration de PHP 7.4 vers 8.2 : pièges à anticiper ?

Publié : jeu. févr. 27, 2025 5:29 am
par la_scriptkid
Attention aux changements de comportement sur : 1) l'ordre des traitements dans les erreurs, 2) la coercition de types plus stricte, 3) certaines fonctions obsolètes comme create_function(). Fais tourner PHPStan en niveau max dès le début !

Re: Migration de PHP 7.4 vers 8.2 : pièges à anticiper ?

Publié : jeu. févr. 27, 2025 6:29 am
par thomas1983
Je viens de le faire pour un projet avec 400k lignes. Le plus chiant : les warnings qui deviennent des erreurs (ex: accès à offset null). Prévois 2-3 semaines juste pour ça. Et teste bien les libs tierces, certaines ne sont toujours pas compatibles 8.2.

Re: Migration de PHP 7.4 vers 8.2 : pièges à anticiper ?

Publié : jeu. févr. 27, 2025 12:29 pm
par nerd421978
N'oubliez pas de vérifier vos extensions ! Certaines (comme memcached) ont eu des changements majeurs. Dans notre cas, on a dû réécrire toute la couche de cache à cause de ça...

Re: Migration de PHP 7.4 vers 8.2 : pièges à anticiper ?

Publié : jeu. févr. 27, 2025 3:29 pm
par antoine06
Merci pour les conseils. On va commencer par un passage de PHPStan comme suggéré. @189, tu as utilisé Rector pour automatiser une partie des corrections ? J'hésite à l'implémenter dans notre pipeline CI.

Re: Migration de PHP 7.4 vers 8.2 : pièges à anticiper ?

Publié : jeu. févr. 27, 2025 7:29 pm
par thomas1983
@112 Oui, Rector est génial pour 70% des cas, mais il faut vérifier ses modifications. Par contre pour les types et les attributs, ça économise des jours de boulot. Configure-le pour traiter fichier par fichier, c'est plus safe.

Re: Migration de PHP 7.4 vers 8.2 : pièges à anticiper ?

Publié : jeu. févr. 27, 2025 9:29 pm
par la_scriptkid
Petit +1 pour Rector, mais attention aux faux positifs sur le code dynamique. Dans notre cas, il a cassé pas mal de magic __get/__set. Un bon test d'intégration avant/après chaque modification est crucial.