La parole est aux speakers : Benoit Viguier

Publié le

Jusqu’au Forum PHP 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Fiber: la porte ouverte sur l'asynchrone

Parmi les nouveautés apportées par Php 8.1, les Fibers tiennent une place particulière. Il s’agit certainement d’une fonctionnalité qui aura un impact majeur sur l’écosystème Php, tout en ayant un impact mineur sur le code que vous écrivez tous les jours. Les Fibers sont comme des générateurs améliorés, des fonctions interruptibles, mais qui peuvent s’imbriquer de manière transparente avec d’autres fonctions. Il est donc enfin possible de créer des fonctions similaires à await et async pour rendre la programmation asynchrone moins intrusive dans notre code et permettre la compatibilité avec les frameworks existants. Voici une introduction à ces nouveaux concepts, ainsi que des exemples concrets de ce que cela permettra dans l’écosystème Php.

Katherine Johnson / Roissy
22/10/2021
12:10-12:30

En 2018, tu présentais les générateurs, en 2019 tu nous parlais d’asynchrone et tu as une expertise dans ce domaine. D’où vient cet intérêt pour cette technique ?

Ça a commencé fin 2017, quand Bedrock (M6Web à l’époque) a complètement repensé l’application 6play. Nous voulions centraliser les traitements côté Backend (Back For Front) mais cela nécessitait beaucoup d’appels Http vers nos autres micro-services, tout en essayant de garantir une dégradation de service harmonieuse en cas de panne. On a rapidement envisagé la programmation asynchrone pour l’ensemble du projet, afin d’optimiser nos performances en faisant plusieurs choses en même temps (une tâche asynchrone par bloc de contenu dans notre page). C’est à partir de là que j’ai investi beaucoup de temps à étudier cette approche, à faire de la veille et à développer notre librairie Tornado pour aider à évangéliser ces pratiques au sein des équipes avec une Developper eXperience satisfaisante. Depuis, je continue de suivre ce qui se passe dans la communauté, car je pense que ça peut vraiment être un levier pour de nouveaux usages de PHP.

Dans ta biographie tu indiques être passionné par tout ce qui est « impossible » à faire en PHP. Qu’entends-tu par là ?

Alors d’abord, je dois vous avouer que je ne suis jamais très inspiré lorsqu’il faut que j’écrive ma biographie… Mais il est vrai qu’en programmation j’aime les défis, et je trouve toujours ça motivant de s’attaquer à un problème qui a peu de solutions connues. J’aime bien aussi démonter les idées reçues sur PHP (ce qui peut expliquer mon engouement rapide pour l’asynchrone et compléter ma réponse à la première question). Du coup, sur mon temps libre je n’hésite pas à utiliser PHP dans des contextes inhabituels: des interfaces graphiques, de la 3D, de la musique sur Raspberry… Certains trouveront ça génial, d’autres que ce serait plus logique d’utiliser les outils existants : la vérité est sûrement entre les deux.

Quel avenir vois-tu pour Fiber ?

Personnellement, je pense que Fiber est une bonne opportunité pour normaliser la programmation asynchrone et la rendre moins intrusive. L’annonce de RevoltPhp est un signe très encourageant : une collaboration entre les équipes de ReactPhp et Amp pour fournir un socle commun d’EventLoop via Fiber. Si les résultats sont convaincants, j’espère qu’une PSR verra le jour pour faciliter l’inter-opérabilité et officialiser une façon de faire de l’asynchrone en PHP. Côté framework, on voit aussi un mouvement intéressant côté Symfony avec le composant Runtime qui permet de lancer une même application avec PhpFpm, ReactPhp, Swoole… donc tout est déjà prêt pour Fiber ! Plein d’usages pourraient alors se démocratiser, notamment les serveurs Web écrits en PHP permettant l’usage de connexions persistantes (entrantes et/ou sortantes). Au final, PHP pourrait se rapprocher de la manière dont les autres langages (Js, Go…) servent leur contenu web, ce qui assez rigolo puisque ces mêmes langages tendent à se rapprocher du modèle d’exécution de Php avec les lambdas. Donc pour moi, les planètes sont plutôt bien alignées pour que Fiber soit le déclencheur de grands changements dans l’écosystème Php.

Une conférence présentée par

Benoit VIGUIER
Benoit VIGUIER
Principal Engineer chez Bedrock (6play, Salto…). Passionné par le code et par tout ce qui est "impossible" à faire en Php.

Autres interviews