ReactPHP est une bibliothèque PHP mature (plus de 12 ans d’existence) qui apporte la programmation asynchrone et événementielle à PHP. Là où PHP classique traite les requêtes de manière synchrone et bloquante, ReactPHP permet d’exécuter des opérations non-bloquantes — à la manière de Node.js ou du langage Go.
Comment fonctionne ReactPHP ?
Le cœur de ReactPHP est l’event loop : une boucle qui tourne indéfiniment et gère l’exécution des tâches asynchrones sans bloquer le programme.
$loop = React\EventLoop\Loop::get();
À partir de cette boucle, on ajoute des tâches asynchrones (connexions réseau, timers, I/O) qui s’exécutent au fur et à mesure sans attendre les unes les autres.
Créer un serveur HTTP avec ReactPHP
ReactPHP est composé de plusieurs composants installables séparément. Pour créer un serveur HTTP :
composer require react/http react/socket
$server = new React\Http\HttpServer(function (Psr\Http\Message\ServerRequestInterface $request) {
return React\Http\Message\Response::plaintext("Bonjour !\n");
});
$socket = new React\Socket\SocketServer('0.0.0.0:8080');
$server->listen($socket);
echo "Serveur lancé sur http://localhost:8080\n";
React\EventLoop\Loop::run();
Ce serveur gère des milliers de connexions simultanées sans créer un processus par connexion.
Cas d’usage
ReactPHP est particulièrement adapté pour :
- Serveurs WebSocket : chat en temps réel, notifications push
- Microservices à fort débit
- Tâches I/O intensives : appels HTTP parallèles, traitement de fichiers
- Processus de fond de longue durée
Pour aller plus loin
Retrouvez la démonstration complète de ReactPHP sur YouTube.