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
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

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :