Quelques chiffres sur la prise en charge de PHP
PHP Extended Lifecycle Support (ELS) vous permet de continuer à utiliser les anciennes versions de PHP tout en recevant les mises à jour de sécurité pour le langage, sans introduire de changements radicaux dans votre application.
La première question qui vient à l'esprit est la suivante : "Pourquoi voudrais-je faire cela au lieu de simplement mettre à jour PHP ?" En supposant que votre organisation puisse mettre à jour le code de votre application existante vers une version plus récente du langage, tout en s'assurant qu'aucun bogue n'est introduit, et en testant minutieusement chaque scénario, il reste le problème de la migration des dépendances.
Les dépendances ne sont que le problème de quelqu'un d'autre
...n'est pas le bon état d'esprit. Les dépendances deviennent votre problème dès qu'elles sont ajoutées à votre base de code. Un problème dans une dépendance peut casser votre application ou la rendre vulnérable à des problèmes de sécurité, indépendamment de la qualité et de la sécurité de votre propre code.
Mais ne nous croyez pas sur parole. Voici quelques statistiques qui mettent en lumière le problème.
Le projet Packagist Archive (https://github.com/bettergistco/PackagistArchive) "contient pratiquement tous les paquets actifs et des milliers de paquets inactifs publiés sur Packagist", le principal dépôt de paquets PHP de l'industrie.
Des statistiques intéressantes sont fournies, notamment un tableau indiquant le numéro de version maximum des paquets :
version | compte
---+---
5.0 | 1038
5.1 | 1388
5.2 | 3205
5.3 | 34318
5.4 | 58898
5.5 | 76834
5.6 | 96168
7.0 | 121782
7.1 | 149362
7.2 | 171130
7.3 | 183333
7.4 | 206935
8.0 | 195895
8.1 | 216676
8.2 | 215960
8.3 | 215519
Nous observons qu'un nombre impressionnant de paquets ne supportent que la version 5.6 de PHP, avec plus de 96 000 paquets déclarant que c'est la version supportée. Cela signifie qu'environ 1 paquet sur 20 de tous les paquets PHP disponibles ne peut pas être mis à jour vers une version plus récente de PHP sans effort supplémentaire pour assurer la compatibilité.
Si 1 sur 20 semble gérable, il faut savoir qu'un projet moyen comporte des dizaines de dépendances, allant de simples aides à des frameworks complexes.
Mais il est certain que tous les responsables de paquets mettront à jour leurs paquets.
...ou pas. Plus de 29 000 paquets sont marqués comme "morts", ce qui signifie qu'ils ne sont plus activement pris en charge. Cependant, cela n'empêche pas les développeurs de les utiliser, même des années après leur dernière mise à jour. Les introduire dans une nouvelle version de PHP, pour laquelle ils n'ont jamais été conçus, est un moyen sûr de casser leurs fonctionnalités, surtout si l'on considère la tendance de PHP à introduire des changements radicaux à chaque mise à jour de version.
Mise à jour de PHP : Le bon choix, mais pas toujours faisable
La mise à jour vers une version plus récente de PHP est le scénario idéal. Cependant, les situations réelles, telles que les dépendances non supportées, l'effort requis, les coûts associés à une telle entreprise, et le manque de bénéfices immédiats et tangibles pour l'application au-delà du fait de "fonctionner comme avant", rendent la mise à jour moins attrayante.
La plupart des organisations chercheront alors des alternatives - assurant la sécurité des mises à jour PHP sans les ruptures associées. C'est là que PHP ELS peut vous aider. Pour en savoir plus ici.