Couverture de l'article AFUP Day de Lyon 2024 : les retours de l'équipe !
Retour aux articles

L'agence

WanadevStudio

AFUP Day de Lyon 2024 : les retours de l'équipe !

Cette année encore, WanadevDigital était sponsor de l'AFUP Day de Lyon et une partie de l'équipe s'est rendue sur place pour assister à des conférences ou même pour en donner, avec la conférence d'Alexandre Daubois : "Composer 101 : Gérer Efficacement ses Dépendances PHP". Dans cet article, vous trouverez les retours de l'équipe sur les conférences qui les ont marquées.

Adapter un projet pour de la marque blanche avec feature flipping" la prez retenue par Xavier, dev backend

Je trouve toujours les retours d'expérience super intéressants, et celui de Florian BOGEY n'a pas dérogé à la règle ! D'autant plus que cela m'a fait penser aux besoins similaires que nous avons avec notre solution de configurateurs 3D.

Avant de rentrer dans le vif du sujet, Florian a d'abord posé un peu de contexte :

  • Single tenant vs Multi tenant : les avantages & inconvénients de ces 2 façons d'aborder une solution de marque blanche, notamment au niveau du hosting et de la maintenabilité
  • Role vs Permission : petite piqûre de rappel de ces 2 aspects permettant la gestion de droits de utilisateurs de manière macro & micro

La solution retenue par lui et son équipe m'a semblé maline et assez "simple" sur le papier malgré une problématique qui pouvait paraître complexe à mettre en œuvre.

De façon très résumée, l'idée était :

  • Pour la gestion marque blanche : charger un .env spécifique à chaque marque avant l'initialisation de l’application
  • Pour la gestion feature flipping : utiliser directement les Voters Symfony en stockant en base de données les permissions (à savoir les attributs des Voters), afin de les rendre activables/désactivables dynamiquement

Attention toutefois : si vous comptez mettre en place cette solution, il faut impérativement utiliser un système de cache (comme Redis). Les Voters Symfony n'ont pas été conçus pour interagir avec une base de données, ils peuvent être appelés très souvent au runtime et sans la mise en place d'un système de cache cela impacterait très fortement les performances de votre application.

Titre_de_l_image

``Comment rendre le Serializer Symfony plus rapide” retenu par Gauthier et Alexandre

Mathias ARLAUD nous a présenté le nouveau composant JsonEncoder, qui devrait arriver avec Symfony 7.2. Clairement, c’est LA révolution qui arrive bientôt dans Symfony. La sérialisation, c’est le goulot d’étranglement d'énormément d'applications web modernes. C’est normal : il s’agit quasiment de la fonctionnalité principale de nos APIs !

La promesse de Mathias est belle : rendre le composant Symfony responsable de ce travail beaucoup plus rapide. Cela aurait l’impact de rendre toutes nos applications plus rapides, (presque) d’un seul coup de baguette magique. En effet, une réécriture complète du composant Serializer, nommé JsonEncoder, est en cours de review sur le repository de Symfony. Exit les normalizers et autres étapes intermédiaires dont les développeurs doivent s’occuper à chaque fois pour convertir des entités en un format facilement sérialisable. Ici, Mathias propose une solution qui se concentre uniquement sur le JSON, ce qui simplifie grandement le workflow des développeurs d’API.

Cette réécriture complète ne signifie pas la dépréciation du composant Serializer existant. Les deux servent des finalités différentes. Le Serializer permet notamment la conversion au format XML ou YAML, là où JsonEncoder n’en est pas capable pour se concentrer sur le JSON et la performance. La transition pourra donc se faire en douceur et sur un travail de longue haleine.

En termes de performance, les choses sont claires : Mathias nous prouve ses dires avec des benchmarks comparant l’actuel Serializer, JsonEncoder ainsi que la fonction native “json_encode()”. Le résultat est impressionnant : JsonEncoder surpasse Serializer dans tous les cas, ainsi que la fonction native de PHP qui permet la conversion au format JSON par moment. Belle prouesse technique !

Rendez-vous en novembre, date prévue de sortie de ce nouveau composant !

“Attributs en PHP : un regard rétrospectif de la magie à l'adoption” retenu par Damien

L’AFUP Day a commencé par un talk réalisé par Kevin Balicot sur les attributs en PHP. Avec des slides à base d’animations colorées et des chats mignons générés par l’IA, il est revenu sur plusieurs points concernant ces fameux attributs. Mais avant de parler des attributs PHP, le talk s’initie en donnant une définition d’un concept plus large qui sont les annotations et leur but. Une annonciation est “un élément permettant d'ajouter des métadonnées à un code source”. Et ces fameuses annotations ont déjà leur place dans d’autres langages très populaires (C, Python, Java, C#,..etc.), elles existent depuis assez longtemps et sont natives à leur langage.

Et en PHP, ces annotations existent aussi mais ne sont pas natives au langage, elles sont incorporées directement dans la documentation du code et notamment au travers de la syntaxe PHPDoc. Un des projets les plus connus pour gérer le parsing de cette PHPDoc est le projet doctrine/annotations. Mais derrière cela, se cache la reflection : une classe intégrée à PHP qui permet de récupérer des informations sur une autre classe et notamment récupérer la PHPDoc. Cependant l’utilisation de cette librairie n’est plus nécessaire depuis PHP 8. Depuis Novembre 2020, PHP a intégré les attributs et ils répondent précisément au besoin que doctrine/annotations comble.

Après quelques exemples de slides expliquant comment utiliser mais aussi créer ses propres attributs, Kévin nous donne quelques attributs utiles de PHP 8 et celle que j’ai retenue pour ce retour d’évènement est l’attribut SensitiveParameter. Introduit en 8.2, cet attribut se positionne sur les arguments d’une méthode et permet de flagger un argument comme sensible : si un erreur est throw, la valeur de cet argument ne sera pas visible dans la stack trace et évite une fuite d’informations dans les logs (mots de passe en tout genre, clés d’API,...etc.).

Avec l’arrivée des attributs dans PHP 8, il était impossible pour Symfony de ne pas en profiter étant donné qu’une grande partie de la configuration de Symfony peut se faire par les annotations via la PHPDoc. Kévin a présenté 48 attributs dont une grande partie de celles-ci remplacent les annotations du même nom (#Route, #IsGranted,...etc.). Pour effectuer cette transition, des outils comme Rector permettent de transformer automatiquement vos annotations en attributs (particulièrement utile lorsque tous nos contrôleurs et entités utilisent des annotations).

On arrive à la fin de la présentation, la hype vous prend et donne envie de créer des attributs pour TOUT. Mais n’allons pas trop vite : bien que l’arrivée des attributs dans PHP est une très bonne chose pour le langage, il faut faire attention et avoir quelques concepts en tête avant de se lancer. Même si les attributs sont plus performants que les annotations et mieux compris par les IDE, il faut garder une vision KISS (Keep It Stupid and Simple) de leur utilisation et ne doivent pas être une dépendance de votre code. Ces attributs ne remplacent pas les contrats et représentent un coût en performance avec l’utilisation de ReflectionClass.

Très sympa d’enfin avoir les attributs en PHP, on croise les doigts pour que d’autres concepts comme les génériques arrivent prochainement.

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !

  • Couverture de l'article Paris web 2024, pour un web de qualité et accessible !
    Paris web 2024, pour un web de qualité et accessible !
    Evénement

    Il y a 3 semaines

    Les 26 et 27 septembre, l'institut Pasteur, un superbe site verdoyant au cœur de Paris, a accueilli la Paris Web 2024. Cet événement exceptionnel se consacre pendant deux jours à explorer les thématiques autour d’un web plus inclusif et ouvert. C'est une véritable bouffée d'air frais qui nous rappelle la raison d’être originel d'internet en tant qu'espace de partage rassemblant des individus du monde entier. Cette année, Maud, Thibaut et Manuel vous proposent une sélection des conférences qui les ont particulièrement marqués.

  • Couverture de l'article SymfonyCon Brussels 2023 : PHP continue d'innover !
    SymfonyCon Brussels 2023 : PHP continue d'innover !
    Evénement

    Il y a 11 mois

    La SymfonyCon, c'est un peu le rendez-vous annuel de la communauté Symfony. C'est un événement qui a lieu chaque année dans une ville différente, et qui rassemble des milliers de développeurs Symfony venus du monde entier. Cette année, nous étions 1200 au SQUARE Center de Bruxelles. Une excellente occasion de rencontrer en vrai les développeurs avec qui on échange toute l'année sur Github !

  • Couverture de l'article Être speaker : de l'autre côté des conférences tech
    Être speaker : de l'autre côté des conférences tech

    Il y a 1 an

    Chez WanadevDigital, nous encourageons nos collaborateurs à intervenir sur leurs sujets d'expertise auprès de la communauté de développeurs PHP. Plusieurs d'entre eux sont intervenus sur des thématiques de leur quotidien, tels que Suzanne et sa conférence sur le concept art, ou encore François lors de la table ronde du Sport Unlimitech à Lyon en 2019. Aujourd'hui, nous avons demandé à Alexandre, lead developer au sein de l'agence depuis décembre 2022 et qui est intervenu sur des nombreuses conférences à destination des développeurs PHP (PHPers Summit 2023, Forum PHP 2023, Symfony Live 2022, etc.), de nous parler de son expérience de speaker pour donner les clés nécessaires à une première intervention.

  • Couverture de l'article Forum PHP 2023: les retours de l'équipe !
    Forum PHP 2023: les retours de l'équipe !
    Evénement

    Il y a 1 an

    Du 12 au 13 octobre dernier avait lieu à Disneyland Paris le forum PHP annuel, organisé par l'AFUP. Une partie de l'équipe WanadevDigital et Octopod s'y sont rendus pour assister aux conférences, et même pour animer une présentation: "Streams : Nous Sous-Estimons Tous Redis".

  • Couverture de l'article Wanadev s'agrandit et change d’adresse !
    Wanadev s'agrandit et change d’adresse !

    Il y a 1 an

    Après plusieurs mois à courir derrière les mètres carrés de notre adresse en presqu’île pour faire face à la croissance de l’équipe, Wanadev et ses marques, dont WanadevDigital, ont déménagé fin juin au 13 Quai du Commerce, dans le 9ème arrondissement de Lyon.

    Ainsi, à partir de juillet, pour nous rejoindre à la nouvelle adresse, ce sera en proximité directe de l’arrêt de métro Vaise, ou bien en vélo par la magnifique piste cyclable le long des quais de Saône… ou bien en aviron directement sur l’affluent (et pourquoi pas ?).

  • Couverture de l'article AFUP Day de Lyon: les retours de l'équipe !
    AFUP Day de Lyon: les retours de l'équipe !
    Evénement

    Il y a 1 an

    Vendredi 12 mai, une partie de l'équipe WanadevDigital était présente sur le campus CPE de Lyon afin d'assister à différentes conférences autour du PHP, mais également dans le but de soutenir la communauté PHP dont nous sommes sponsors. Suite à cette journée, Manuel, Alexandre, Benjamin, Paco, Mohamed, Xavier et Julien reviennent sur les temps forts qui les ont marqués.