AFUP Forum PHP 2020 Baromètre Planète PHP

La parole est aux speakers : Stéphane HULARD

Jusqu’à l’AFUP Day 2020, 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

Unplug the HTTPlug !

ll y a beaucoup de librairies qui permettent de faire des appels HTTP depuis nos applications. Parfois un projet utilise plus d'un "client" et il devient compliqué de savoir et contrôler comment ces appels sont déclenchés.

HTTPlug est un petit écosystème (librairies, adapteurs, bridges avec les frameworks, actif dans la création des PSRs…) qui peut aider à créer une abstraction autour du client HTTP. Il contient les adapteurs vers les librairies les plus connues (Guzzle, cURL, …) et adopte complètement les PSR7 et PSR18. En utilisant quelque chose comme HTTPlug, vous aurez la possibilité de normaliser le comportement et d'avoir un seul point d'entrée pour interagir avec les APIs.

Avec ce talk, l'objectif est de présenter l'écosystème, ses avantages, inconvénients et comment il peut aider votre projet à être plus solide.

En ligne
24/06/2020
15:15-15:35

L’arrivée d’un nouveau composant Symfony dédié à faire des appels HTTP a parfois été questionnée. Quel est ton avis sur cette pluralité et le nombre de librairies disponibles dédiées à cette tâche ?

Lorsque j’ai entendu l’annonce du composant HTTP de Symfony j’avoue avoir été très surpris au début. À une époque où l’interopérabilité est au centre des préoccupations, pourquoi créer un nouvel outil pour répondre à cette problématique courante dans nos projets et surtout pourquoi le faire un peu hors des sentiers battus ?
En effet les recommandations sur les messages HTTP (PSR7) et sur les clients HTTP (PSR18) avaient été acceptées quand ce composant est sorti et ont pourtant été un peu boudées au départ… La sortie de Symfony du PHP-FIG en novembre 2018, quelques mois avant l’annonce du HttpClient n’a clairement pas aidé.

Malgré tout, après avoir pris un peu de recul, lu un peu de code et vu les adapteurs pour les PSR j’étais rassuré. J’ai découvert dans ce composant une approche différente pour résoudre certaines problématiques (compatibilité HTTP2 et multiplexage par exemple) qui n’était pas disponible ailleurs à ma connaissance. Il a donc apporté sa brique à l’écosystème et a permis à toute la communauté d’avancer.

Le côté un peu “fermé” qui est induit par la création de tout ces composants sous la bannière Symfony ne me plait pas toujours mais la communauté derrière ce framework est tellement active qu’il est difficile d’y trouver à redire. Cependant je pense qu’il est important que tout ceux qui n’ont qu’une vision Symfony de l’écosystème découvrent les autres solutions qui leur sont offertes.

Pour terminer, je dirais que ça ne me gêne pas qu’il y ait pluralité tant que tout le monde est libre de s’appuyer sur la solution qui lui convient le mieux, quel que soit le framework qu’il a choisi pour l’accompagner.

Que ce soit pour des appels HTTP ou pour d’autres librairies, quels sont les critères de choix que tu regardes avant d’en utiliser une ?

Mes critères sont différents en fonction du contexte dans lequel je dois faire ce choix. Quand je travaille sur un projet perso, tout seul, je le fais souvent pour expérimenter. Dans ce cas je choisis les librairies avec lesquelles j’ai envie de jouer. C’est souvent celles qui ont une approche qui m’est inconnue ou que j’ai envie de tester qui attirent mon attention. Ça me permet d’enrichir ma vision de la programmation en la confrontant à celles des contributeurs derrières ces outils.

Par contre quand je travaille dans le cadre professionnel avec une équipe je vais plutôt me poser ces questions dans l’ordre :
– Est-ce que l’équipe connaît déjà cette solution et est à l’aise avec ?
– Est-ce que la librairie est correctement maintenue (mise à jour régulière, réponse aux tickets, activité en ligne) pour obtenir de l’aide en cas de besoin ?
– Est-ce qu’elle répond bien à ce dont nous avons besoin ? Qu’est ce qu’il y a en trop ? Qu’est-ce qui manque ?
– Est-ce que l’équipe pourra utiliser facilement ce nouveau code ?

Le reste n’est qu’une histoire de compromis. Intégrer un code tiers nécessite de le brancher correctement dans l’application et c’est finalement le dernier point. Si la librairie est trop compliquée à connecter dans le projet on essaie de se tourner vers d’autres solutions quand il y en a. Sinon la documentation est de mise pour décrire cette complexité.

Tu interviens lors du programme de mentorat, quels retours peux-tu nous faire à ce sujet ?

Effectivement, j’interviens depuis plus de six mois maintenant dans ce programme. J’ai eu le plaisir d’accompagner deux personnes, avec lesquelles ça s’est bien passé (et ça continue de bien se passer). Les échanges autour du métier, des contraintes, des évolutions, du code ont été très enrichissants pour moi et je l’espère pour eux.

Le mentorat est très intense pour les deux parties, mentor comme mentoré·e car il nous met face à la réalité. De mon côté, je confronte mes points de vue, idées et solutions à de nouvelles situations ce qui me permet de continuellement me remettre en question. Expliquer des choix est un bon moyen de se rendre compte qu’ils sont perfectibles ou qu’il existe aussi d’autres chemins pour atteindre le même but. De leur côté j’espère partager ma passion pour cet univers et leur donner envie de persévérer dans cette voie en les accompagnant de mieux que je le peux !

Il y a tellement de belles choses à faire qu’il est important que tout le monde trouve sa place 😉

Le speaker

Stéphane HULARD
Stéphane HULARD
Depuis 2006, il baigne dans le web et son écosystème. Consultant et formateur indépendant, il apprécie particulièrement travailler sur des projets legacy pour accompagner les équipes à les reprendre en main et il s'obstine à la mise en place des méthodes d'ingénierie logicielle sur le web (intégration et déploiement continu, tests unitaires, documentation…). Il essaie de rendre à la communauté au maximum à travers des contributions Open Source. Il télétravaille presque à 100% ce qui lui permet de vivre à l'étranger la moitié de l'année.

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 :