Mathieu Desnouveaux

PHP est-il asynchrone ?

Présentation par Frédéric Bouchery sur la programmation asynchrone en PHP lors d'un meetup AFUP Lorraine

Sketchnote illustrant la programmation asynchrone en PHP présentée lors d'un meetup AFUP Lorraine. Le schéma explique ce qui ne se déroule pas en même temps grâce au parallélisme. Trois modes d'exécution sont comparés : séquentiel (tâches 1-2-3-4 en série), asynchrone (tâches 1-2 puis 4 pendant que 3 s'exécute), et parallèle (tâches 1-2-4 pendant tâche 3). Le traitement non bloquant est possible depuis PHP 3 avec set/stream_select, puis les coroutines depuis PHP 5.5 via les générateurs, les Fiber depuis PHP 8.1, et l'event loop qui connecte Promises et Futur. En discussion : RFC true async pour enchaîner rapidement ces mécanismes.

Cette sketchnote a été réalisée lors d'un meetup AFUP Lorraine le 10 septembre 2025. Elle illustre la présentation "PHP est-il asynchrone ?" donnée par Frédéric Bouchery, qui explore les capacités asynchrones de PHP et leur évolution.

Contenu de la présentation

Frédéric Bouchery démystifie la programmation asynchrone en PHP en expliquant ce qui ne se déroule pas en même temps grâce au parallélisme. Il compare trois modes d'exécution : séquentiel (tâches linéaires 1-2-3-4), asynchrone (tâches 1-2 puis 4 pendant l'exécution de 3), et parallèle (tâches 1-2-4 simultanées pendant 3).

L'évolution historique montre que le traitement non bloquant existe depuis PHP 3 avec set() et stream_select(). Les coroutines arrivent avec PHP 5.5 via les générateurs, permettant de suspendre et reprendre l'exécution. PHP 8.1 introduit les Fiber pour un contrôle encore plus fin. L'event loop connecte Promises et Futur pour orchestrer ces mécanismes asynchrones.

En discussion : une RFC "true async" pour enchaîner rapidement ces mécanismes et simplifier la programmation asynchrone en PHP.

Thèmes:
🐘 PHP 🚀 Performance
Événement:
🍻 AFUP Lorraine

Source: Frédéric Bouchery
Publié le 08 décembre 2025