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.