Une évaluation en une semaine
Rien de ce que jâai Ă©crit ne devrait dĂ©cider Ă votre place. La raison de votre dĂ©cision devrait ĂȘtre une mesure faite sur votre propre charge de travail, et il ne faut pas longtemps pour en faire une. Cinq jours ouvrĂ©s suffisent pour installer le langage, le lire, lâexĂ©cuter sous charge, construire une tranche de votre produit, et vĂ©rifier par vous-mĂȘme lâĂ©cosystĂšme et la gouvernance. Il vous faut un ordinateur portable, une petite machine virtuelle et personne dâautre, et ce que vous tenez Ă la fin, câest une page de chiffres que personne ne vous a tendue.
Jour un : le langage
Installez PHP 8.5 depuis votre gestionnaire de paquets ou lancez lâimage officielle, php:8.5-cli. Collez le premier exemple du chapitre Le langage en 2026 dans un fichier, exĂ©cutez-le, puis cassez-le comme ce chapitre le suggĂšre et lisez chaque message dâerreur. Clonez un projet PHP open source dâune taille qui vous parle et lancez sa suite de tests. Passez ensuite un analyseur statique, PHPStan ou Psalm, Ă son niveau le plus strict, et lisez les vingt premiers rĂ©sultats :
composer require --dev phpstan/phpstan
vendor/bin/phpstan analyse --level=max src
composer require --dev vimeo/psalm
vendor/bin/psalm --init src 1 && vendor/bin/psalm
Ce que lâanalyseur attrape et que le moteur laisse passer, câest la rĂ©ponse pratique Ă la question des gĂ©nĂ©riques. Notez le temps quâil vous a fallu pour lire la base de code, et si les rĂ©sultats Ă©taient des choses que vous auriez voulu voir attrapĂ©es.
Jour deux : le runtime
Sur la machine virtuelle, installez PHP-FPM avec nginx, activez OPcache et servez un script hello-world. Servez ensuite le mĂȘme script sous FrankenPHP en mode worker, et chargez les deux avec le mĂȘme outil, Ă la mĂȘme concurrence :
wrk -t4 -c64 -d30s --latency http://127.0.0.1/
Notez pour chaque exĂ©cution les requĂȘtes par seconde, la latence mĂ©diane, le 99e centile et la mĂ©moire par worker, lue sur la page de statut de FPM ou dans ps. Remplacez ensuite le hello-world par le squelette dâun framework full-stack, nâimporte lequel parmi CakePHP, Laminas, Laravel, Symfony ou Yii, et recommencez. Le rapport entre les quatre exĂ©cutions est le coĂ»t du runtime pour votre future application sur votre matĂ©riel, le chiffre que DĂ©bit et latence ne pouvait vous donner que pour le matĂ©riel de quelquâun dâautre.
Jour trois : une tranche du produit
Choisissez la fonctionnalitĂ© de votre produit qui le reprĂ©sente le mieux : un endpoint authentifiĂ© qui lit et Ă©crit une base de donnĂ©es, rend ou sĂ©rialise quelque chose, et envoie un message dans une file. Construisez-la dans le framework choisi le deuxiĂšme jour, avec des tests, en nâutilisant que ce que le framework et Packagist fournissent, et nâoptimisez pas. Notez le temps que cela a pris, la part que vous avez Ă©crite et la part que vous avez configurĂ©e, le nombre de paquets tirĂ©s, et ce que composer audit en a dit.
Jour quatre : la tranche sous charge
Chargez la tranche du troisiĂšme jour comme vous avez chargĂ© le hello-world, Ă la concurrence que vous attendez en production, puis Ă dix fois cette valeur. Profilez une requĂȘte lente avec le profileur de Xdebug ou avec hrtime() autour des appels suspects, et regardez oĂč passe le temps ; sur la plupart des tranches, il passe dans la base de donnĂ©es, et le langage nâest quâune mince part Ă chaque bout. Notez le dĂ©bit et le 99e centile aux deux concurrences, et la part dâune requĂȘte passĂ©e hors de PHP.
Faites ensuite la seule chose que les benchmarks ne font jamais. Tuez un worker en pleine requĂȘte, saturez la limite de mĂ©moire, levez une exception non attrapĂ©e dans un job de file dâattente, et notez ce que lâutilisateur a vu, ce que les journaux ont dit, et ce qui sâest rĂ©tabli tout seul.
Jour cinq : lâĂ©cosystĂšme et la gouvernance
Cherchez sur Packagist les trois bibliothĂšques dont votre produit ne peut se passer, et notez pour chacune la date de sa derniĂšre version et son nombre de tickets ouverts. Ouvrez wiki.php.net/rfc et lisez la RFC en cours de vote, puis le fil internals qui la porte. Ouvrez la page des versions maintenues de php.net et notez la date Ă laquelle la version que vous avez choisie cesse de recevoir des correctifs de sĂ©curitĂ©. Ouvrez la page Open Collective de la fondation et lisez le dernier mois de transactions, puis les trois avis de sĂ©curitĂ© les plus rĂ©cents de php-src, avec leur dĂ©lai entre signalement et correctif. Tout cela tient dans un aprĂšs-midi, et câest la matiĂšre premiĂšre que Gouvernance et pĂ©rennitĂ© a rĂ©sumĂ©e pour vous.
La décision
La semaine a produit des chiffres, et une décision demande des pondérations que vous seul pouvez fixer. Chaque question ci-dessous a ses preuves publiques dans un chapitre et votre propre réponse dans un jour de la semaine.
| Question | Preuves publiques | Votre résultat de la semaine |
|---|---|---|
| Aurai-je envie de lire et dâĂ©crire ce langage pendant des annĂ©es ? | Le langage en 2026 | Jour un |
| Le débit du runtime suffit-il à mon trafic, sur mon matériel ? | Débit et latence | Jour deux, jour quatre |
| Ma charge de travail tient-elle dans le modĂšle par requĂȘte, ou maintient-elle des connexions, ou consomme-t-elle du CPUÂ ? | Le runtime, Concurrence, LĂ oĂč PHP est le mauvais choix | Jour quatre |
| Les bibliothĂšques dont jâai besoin existent-elles, et sont-elles maintenues ? | LâĂ©cosystĂšme | Jour trois, jour cinq |
| Qui maintient le langage, et jusquâĂ quand ma version est-elle prise en charge ? | Gouvernance et pĂ©rennitĂ© | Jour cinq |
| Puis-je recruter pour lui, lâhĂ©berger, et me payer la mise Ă niveau annuelle ? | CoĂ»t de possession | Vos sites dâoffres dâemploi, votre Ă©quipe plateforme |
| Tourne-t-il, Ă lâĂ©chelle, dans des organisations dont je croirais quâelles ont vĂ©rifié ? | Empreinte | Leurs documents publics |
Certaines issues reviennent souvent. Quand la charge de travail est en requĂȘte-rĂ©ponse, que le dĂ©bit du deuxiĂšme jour a dĂ©passĂ© votre besoin avec de la marge et que les bibliothĂšques du cinquiĂšme jour Ă©taient vivantes, mes preuves et les vĂŽtres concordent, et la dĂ©cision porte sur votre Ă©quipe plus que sur le langage. Quand le quatriĂšme jour a rĂ©vĂ©lĂ© un cĆur limitĂ© par le CPU ou par les connexions, la conclusion honnĂȘte est un autre langage pour ce cĆur, avec Ă©ventuellement PHP autour. Et quand la semaine a Ă©tĂ© agrĂ©able mais que les sites dâoffres dâemploi de votre ville Ă©taient vides, ou que les chiffres de rĂ©tention de CoĂ»t de possession vous inquiĂštent plus que le runtime, câest une raison lĂ©gitime de dĂ©cliner. Je ne la contesterai pas, mĂȘme sous lâĂ©gide de la fondation du langage.
La limite : une semaine mesure une tranche, pas un produit, et lâĂ©quipe qui fait tourner la tranche nâest pas celle qui fera tourner le produit pendant dix ans. La semaine retire la rĂ©putation de la dĂ©cision, et laisse le jugement.
Ce que vous pouvez vĂ©rifier vous-mĂȘme
Tout ce qui prĂ©cĂšde. Si un chiffre de ces pages se rĂ©vĂšle faux quand vous le vĂ©rifiez, lâannexe des sources donne lâURL oĂč vit le bon, et le dĂ©pĂŽt derriĂšre ce livre accepte les corrections. Câest lâarrangement que vous devez attendre de tout document qui rĂ©clame votre temps.