En Route Vers 
Le Multi-Tâche

En Route Vers 
Le Multi-Tâche

Depuis très longtemps, en tant que développeur PHP, je me demande s'il est possible de faire du multi-tâche en PHP. Il s'avère que la réponse à cette question n'est pas aussi simple que ce que l'on peut croire. En effet, répondre catégoriquement "non" à cette question peut sembler correct car PHP n'a pas été conçu comme un langage permettant de lancer des traitement en parallèle. Mais que diriez-vous si je vous démontrais que l'on peut finalement arriver assez facilement à faire des traitements multi-tâches en PHP et ainsi simuler une sorte d'asynchronisme ? Facile ! Me direz-vous, aujourd'hui nous avons tout un tas de logiciels et librairies à notre disposition pour le faire :

* AMQP,
* ReactPHP,
* Les sous-processus,
* PThread,
* ...

Et je répondrais que la majorité de ces solutions ne sont pas si simples à mettre en oeuvre que ce qu'on pense. Par contre, les générateurs, eux, sont intégrés nativement à PHP, ne nécessitent aucune extension ou infrastructure et peuvent nous permettre d'arriver à un résultat qui peut être, dans certains cas, satisfaisant.

#php #phptour #afup

## Liens

* async-interop/awaitable : https://github.com/async-interop/awaitable
* jubianchi/async-generator : https://github.com/jubianchi/async-generator
* Cooperative multitasking using coroutines (in PHP!) : https://nikic.github.io/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP.html

F46b6942be65359575174569d8979223?s=128

Julien BIANCHI

May 24, 2016
Tweet