Semaine des générateurs : le lancement !
18 janvier 2016 —A mes yeux, les générateurs (ou « Generators », en anglais) sont la nouveauté la plus frappante de PHP 5.5. Et pourtant, quand, lors d’une conférence à Nantes en septembre dernier, j’ai demandé qui dans la salle utilisait des générateurs, seules deux mains se sont levées. Sur une quarantaine de personnes !
Plusieurs discussions que j’ai eu depuis ont mené à des remarques comme « ça a l’air cool, mais est-ce que tu aurais un cas pratique où tu en as utilisé ? ». Après tout, ça peut effectivement avoir l’air sympa sur le papier et en conférence, mais rien ne vaut des cas réels pour se convaincre.
J’ai donc demandé sur Twitter si des personnes utilisant des générateurs voudraient bien écrire à propos de leur expérience, pour partager des cas d’usage qu’ils ont rencontré et pour nous montrer dans quelles situations, réelles, employer un générateur peut être pratique, utile, ou tout simplement cool !
Plusieurs développeurs m’ont répondu. Et voici donc la première semaine des générateurs !
- Jour 1 : (en français) pour ouvrir le bal, Sébastien Rogier nous parle de l’utilisation de générateurs pour agréger des données depuis plusieurs sources, sur un gros batch en CLI, sans exploser la
memory_limit
de son serveur : Cas d’utilisation de yield en PHP - Jour 2 : (en anglais) aujourd’hui, Mark Baker nous propose une ré-implémentation de
array_map()
,array_filter()
etarray_reduce()
qui est applicable sur des générateurs, permettant de manipuler des données à la volée : A Functional Guide to Cat Herding with PHP Generators - Jour 3 : (en anglais) pour ce troisième jour, Kévin Gomez présente deux cas d’utilisation des générateurs : Use cases for PHP generators
- Jour 4 : (en français) voilà le quatrième jour et c’est au tour de Florian FERRIERE d’écrire sa Présentation des générateurs
- Jour 5 : (en français) pour terminer cette semaine, c’est mon tour de vous parler d’une de mes utilisations : Les générateurs, c’est le bien ! Un cas d’usage.
Voici aussi quelques autres articles, un peu plus vieux, qui m’ont été recommandés cette semaine ou auxquels j’ai repensé :
- Yell at yield! et using yield generator with mongodb
- Processing large datasets with Doctrine
- Cooperative multitasking using coroutines
- Une présentation des générateurs que j’avais rédigée en 2012, alors que la sortie de PHP 5.5 approchait.
Vous souhaitez vous aussi partager une expérience, une utilisation, autour des générateurs ? Lancez-vous !
Et autour d’un autre sujet ? Même chose ;-)