La parole est aux speakers : Kévin Dunglas

Publié le

La conférence

Webperf : boostez vos apps PHP avec le code de statut HTTP 103 Early Hints

Google Chrome, Firefox, Caddy et Apache supportent désormais un nouveau code de statut HTTP : 103 Early Hints. Depuis sa version 6.3, Symfony supporte également les réponses 103 et le nouveau SAPI FrankenPHP le supporte également nativement.

Ce nouveau type de réponse un peu particulier a un seul objectif : accélérer le temps de chargement de vos sites et applications web en permettant au navigateur de précharger les ressources dont il aura besoin pour effectuer le rendu de la page.

Au cours de cette présentation, nous verrons en quoi 103 diffère des autres techniques de préchargement comme HTTP/2+ Server Push ou les balises <link ref="preload"> et comment en tirer parti depuis nos applications PHP.

Salle Johnson GHJKLM
13/10/2023
12:25-12:45

Lors de tes dernières conférences à l’AFUP tu nous présentais le projet FrankenPHP, celui-ci est-il maintenant utilisable en production ?

Il l’est presque ! La plupart des bugs ont été résolus et la performance a été améliorée.

FrankenPHP est désormais testé avec Symfony, WordPress, Drupal, Sulu ainsi qu’avec de nombreuses extensions, parmi lesquelles Xdebug et parallel, ce qui a permis de dénicher et de corriger pas mal de petits problèmes et de s’assurer de la stabilité du projet.

PHP 8.2 et 8.3 sont désormais supportés et nous publions automatiquement des images Docker pour ces deux versions de notre langage préféré. La dernière étape va consister à construire et publier des binaires pour celles et ceux qui souhaitent se passer de Docker et ne pas avoir à compiler le projet eux-mêmes.

La rumeur court que des annonces concernant FrankenPHP (et pas que !) seront faites lors de la conférence API Platform qui se déroulera les 21 et 22 septembre à Lille. N’hésitez pas à venir y faire un tour pour vous chauffer avant le Forum PHP !

En parlant du Forum PHP, mon talk sur le code HTTP “103 Early Hints” expliquera (entre autres) comment utiliser FrankenPHP ainsi que le serveur Caddy (sur lequel il est basé) pour tirer partie de cette nouvelle optimisation permise par la plateforme web.

Speaker régulier aux événements de l’AFUP, tu as eu l’occasion de te prêter au jeu de l’interview plusieurs fois. Quelle question aurais-tu aimé que l’on te pose, mais qu’on ne t’a jamais posé ?

« C’est quand que tu vas mettre des paillettes dans ma vie ? »

Peux-tu nous faire une mise à jour autour de Mercure et des échanges avec l’IETF ?

Mercure se porte à merveille ! Le protocole comme son implémentation de référence sont maintenant matures et très stables. Ils sont utilisés en production par des centaines de projets. Parmi eux on trouve les outils qui ont permis d’organiser l’Euro de foot et la Cop 21, les plateformes de e-commerçants tels que Lush, Alice’s Garden ou Oskab, des réseaux sociaux comme MYM, des médias, de nombreux acteurs de la santé…

C’est aussi la première fois que j’arrive à trouver un vrai modèle économique pour l’un de mes projets libres. Les versions Cloud et Haute Dispo simplifient la vie des utilisateurs, apportent de la valeur ajoutée au projet, et financent le développement du projet libre (ainsi que de nombreuses contributions à d’autres projets libres tels que API Platform, Symfony et le serveur web Caddy, qui sont tous les trois utilisés pour construire la version managée).

Côté technique, la version 1.20 du langage Go a ajouté de nouvelles fonctionnalités à la bibliothèque standard qui vont permettre d’encore simplifier le code du hub et d’améliorer légèrement ses performances (qui sont déjà exceptionnellement bonnes). D’autres optimisations sur lesquelles nous bossons devraient également arriver prochainement.

Concernant les discussions avec l’IETF, je n’ai pas encore pu terminer le processus de standardisation faute de temps. J’attends également de connaître l’avancée de la standardisation de la spécification URL pattern, qui pourrait permettre de simplifier encore le système de “topic selectors” de Mercure, avant de publier une version définitive du protocole.

Ceci dit, des discussions sur ces sujets viennent de reprendre et un nouveau groupe de travail dédié au Web temps réel pourrait prochainement voir le jour. Il regrouperait les travaux autour de Mercure et de Braid (une proposition d’extension à HTTP qui pourrait bien un jour faire l’objet d’un talk lors d’un évènement AFUP !).

Une conférence présentée par

Kévin DUNGLAS
Kévin DUNGLAS
Kévin est le créateur du framework API Platform ainsi que de projets comme FrankenPHP, Mercure ou Vulcain. Il est également membre de la Core Team Symfony et a cofondé la société autogérée Les-Tilleuls.coop.

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 :