L'article explique que PHP, traditionnellement synchrone, peut optimiser des tâches comme les requêtes SQL en les exécutant de manière asynchrone. Cela permet de lancer des opérations non bloquantes, comme des requêtes de base de données ou des lectures de fichiers, pendant que d'autres tâches sont traitées. PHP a introduit des fonctionnalités asynchrones dès la version 4.3 avec les streams, et a évolué avec les générateurs en PHP 5.5 et les fibers en PHP 8.1, permettant une meilleure gestion des coroutines. L'EventLoop est présenté comme un modèle efficace pour gérer plusieurs opérations asynchrones en utilisant des callbacks, bien que cela puisse mener à un "callback hell". Les promesses sont proposées comme solution pour simplifier la gestion asynchrone, transformant les callbacks imbriqués en une chaîne de promesses plus lisible. Enfin, l'article compare des bibliothèques comme ReactPHP et Amp pour la gestion des promesses et des coroutines, recommandant ReactPHP pour les promesses et Amp pour une approche plus naturelle avec les coroutines, tout en suggérant Revolt pour l'EventLoop.
L'article présente les streams en Node.js, asynchrones et pilotés par événements. Ils simplifient les opérations d'I/O en gérant les données en morceaux plus petits et plus faciles à manipuler. Ils se catégorisent en quatre types : Readable, Writable, Duplex (à la fois lisible et scriptible) et Transform (modifiant les données lors de leur passage). La fonction 'pipe()' est un outil utile dans Node.js, permettant de lire des données depuis une source et de les écrire vers une destination sans gérer manuellement le flux de données. Node.js moderne offre des utilitaires comme 'stream.pipeline()' et 'stream.finished()', ainsi que des API basées sur les Promesses pour une meilleure gestion des erreurs et du flux. Les streams peuvent être utilisés avec des motifs async/await pour un code plus propre et plus maintenable.
Lorsque vous avez plusieurs requêtes HTTP à lancer dans une application Symfony, vous pouvez le faire de manière séquentielle (donc lent) ou les paralléliser si vos appels sont indépendants. C'est ce que permet HttpClient via la méthode stream.
Tout est dans le titre
Tout est dans le titre