Keynote d'ouverture

Ballroom GHJKLM - Katherine Johnson 13/10/2022 09:20-09:35 - Niveau : N/A - Français

Bienvenue au Forum PHP 2022 !

Présentation des speakers

Ballroom GHJKLM - Katherine Johnson 13/10/2022 09:35-09:40 - Niveau : N/A - Français

Grâce à ces présentations en 5 minutes chrono, faites votre choix parmi les conférences à venir dans la prochaine demi-journée.

De l'humain à l'ordinateur, ou découvrir le sens d'un texte avec ElasticSearch.

Ballroom GHJKLM - Katherine Johnson 13/10/2022 09:45-10:25 - Niveau : Grand public - Français

En y réfléchissant un peu, un texte, des phrases, des mots, ne sont que de simples suites de caractères, tout comme une image n'est qu'une simple matrice de pixels. Cependant, notre cerveau est capable d'interpréter cet enchaînement de caractères, et de l'associer à des concepts, en d'autres termes de lui donner du sens. Si on prend un peu de recul là-dessus, on peut se dire que notre cerveau est sur bien des aspects clairement impressionnant.

Un enjeu de ces dernières années, c'est entre autres de permettre aux ordinateurs d'imiter cet aspect notre cerveau, en leur donnant la capacité de trouver le sens de la donnée avec laquelle ils travaillent. C'est par exemple ce que tente de faire l'intelligence artificielle.

Je vous rassure tout de suite, on ne va pas du tout parler d'intelligence artificielle (même si cela serait extrêmement intéressant). On va cependant réduire notre champ de travail et essayer de comprendre comment il est possible d'attribuer un score de corrélation entre un texte donné et une multitude d'autres. Et pour cela, on va se pencher sur la manière dont se prend ElasticSearch (ou plutôt Apache Lucene) pour répondre à cette problématique.

Bienvenue en terminale, vous avez deux heures. Cette équation (simplifiée) représente une manière de calculer ce fameux score de corrélation, et c'est exactement ce que nous allons décortiquer.

Dans un second temps, nous verrons comment nettoyer un texte "humain" afin de faciliter sa compréhension par un ordinateur. Char filters, tokenizers, token filters, tant d'outils qui permettront de réduire un texte à son sens profond, de réduire son "bruit" afin d'optimiser les scores de corrélation.

Et petit bonus, vous pourrez même briller en société en étant en mesure de placer dans vos soirées mondaines des termes comme "Term frequency", "Inverse document frequency", "Coordination factor", "Inverted index"...

The PHP Foundation: The past, the present, and the future

Ballroom ABCDEF - Grace Hopper 13/10/2022 09:45-10:25 - Niveau : N/A - Anglais

"A complex saga of developers scattered around the world, all living under the rule of the elePHPant technology."

PHP is going to die. We're all going to die. We've been around PHP for over two decades, and we've seen many concepts and tools gaining and losing favor. That's the knowledge we aim to apply for the support and advancement of the PHP language.

The PHP Foundation is a non-profit organization formed a year ago by well-known PHP folks as well as major companies from the PHP ecosystem. Come to this session to learn what we have achieved during our first year and what we are planning next. We’re eager to answer your questions and look forward to hearing your suggestions.

Comprenez comment PHP fonctionne, vos applications marcheront mieux

Ballroom GHJKLM - Katherine Johnson 13/10/2022 10:30-11:10 - Niveau : Intermédiaire - Français

Pour exécuter du code, PHP consomme du processeur et de la mémoire. Quand une requête HTTP arrive, un processus php-fpm lui est dédié. Mais ces ressources sont limitées. Et, même dans Le Cloud ou en serverless, scaler prend du temps et les coûts s’envolent !

Savez-vous combien de CPU et de RAM votre application réclame ? Et pendant quelle durée ? Si non ou sans comprendre « pourquoi », difficile de développer efficacement et de dimensionner un hébergement pérenne ! Peut-être que ça marche… Sur votre poste. Ou pendant un moment, en gaspillant de l’argent et des ressources. Mais l’expérience prouve que, tôt ou tard, ces questions vous rattraperont.

Cycle de vie de PHP, communication entre nginx et php-fpm, approche shared-nothing, compilation et cache d’opcodes, gestion interne de la mémoire ou même architecture logicielle et debugging… Pour qu’une application réponde aux attentes de son public, nous devons comprendre comment PHP fonctionne !

Back to the Sylius future

Ballroom ABCDEF - Grace Hopper 13/10/2022 10:30-11:10 - Niveau : Intermédiaire - Français

Contributeur depuis de nombreuses années sur Sylius et maintenant membre de la Core Team, je vous propose un voyage dans le futur de Sylius.

Nous verrons ensemble comment sera le code Sylius de demain et quelles seront les futures migrations de packages avec un objectif simple : se rapprocher de l’écosystème de Symfony.

Nous reviendrons également sur la vision de Pawel Jedrzejewski (le créateur de Sylius) d’exposer un skeleton plus léger et une architecture plus adaptable au niveau des fonctionnalités proposées par le framework E-commerce.

FFI : De nouveaux horizons pour PHP

Ballroom GHJKLM - Katherine Johnson 13/10/2022 11:40-12:20 - Niveau : N/A - Français

PHP est depuis sa création fortement lié au développement de sites internet. Pourtant, depuis PHP 4.3 (2002) qui a ajouté la SAPI CLI, PHP peut servir pour développer des applications ainsi que des services. Avec l’arrivée de FFI en 7.4, PHP peut maintenant appeler des fonctions C directement. Cette nouveauté permet d’utiliser des bibliothèques externes sans nécessiter d’extension PHP. Elle ouvre ainsi les portes de la programmation système à PHP.

Nous vous présenterons comment nous avons utilisé FFI en production sur un projet domotique (contrôle d’une salle de Karaoké). Pourquoi avons-nous fait ce choix ? Quelles problématiques avons-nous rencontrées ? Pour quel résultat ?

Finalement: FFI production ready ?

Comment être bien onboardé en tant que développeuse junior reconvertie ?

Ballroom ABCDEF - Grace Hopper 13/10/2022 11:40-12:20 - Niveau : Grand public - Français

Comment être bien onboardé en tant que développeuse junior reconvertie ??

En tant que développeuse junior en reconversion professionnelle (quand celle-ci s'arrête-t-elle exactement ?), j'ai dû changer d'entreprise suite à une très mauvaise expérience express dans ma première entreprise. De la première à la seconde, ce fut le jour et la nuit.

C'est un sujet qui part sur deux axes principaux :

  • L'entreprise, qui possède un rôle majeur dans l'onboarding des salarié-e-s, autant techniquement (process, mini formations, présentations des pôles si moyenne/grande entreprise) qu'humainement,
  • La développeuse ou le développeur qui doit s'intégrer, avec force, autonomie en gérant la pression de son nouveau métier + nouveau lieu de travail + nouvelles responsabilités etc..

Mais avec aussi la nouveauté des remarques que l'on peut subir en tant que femme dans ce nouveau monde de la tech.

Une plongée dans Node depuis PHP

Ballroom GHJKLM - Katherine Johnson 13/10/2022 12:25-12:45 - Niveau : Intermédiaire - Français

Cette conférence est volontairement inutile, elle n'existe que pour satisfaire les curieux et curieuses. Vous êtes-vous déjà demandé quelle étaient les différences entre Composer et NPM ? Quel est l'équivalent de l'autoloader dans Node, et comment cela change la perspective sur la gestion de dépendances ? Comment comprendre les promise et async/await quand on programme en PHP depuis toujours ? Pourquoi PHP baigne-t-il moins dans l'asynchrone, est-ce qu'on loupe quelque chose avec notre bon vieux PHP-FPM ? Pourquoi les équivalents JS à Symfony et Laravel partent du frontend plutôt que du backend (Next, React…) ? Comment TypeScript se compare à PHP 8.2 + PHPStan, pourquoi certains projets majeurs s'éloignent de TypeScript, et qu'en retirer pour le futur du PHP typé ? Performances, exceptions, debugging, frameworks, tests, bundling, build, build et rebuild… À quoi ressemble une journée-type quand on a pas besoin de préfixer ses variables par des $ ?

Je fais du PHP depuis 2006 et j'ai plongé dans l'écosystème Node il y a 2 ans. Je participe aujourd'hui à la maintenance de projets open-source JavaScript/TypeScript qui comptent plus de 30 millions de téléchargements/mois. Voici mes découvertes, émerveillements et surprises, expliquées SANS TROLL à celles et ceux qui font du PHP tous les jours (et qui n'ont pas forcément envie de changer).

Des workers PHP avec systemd et Symfony Messenger

Ballroom ABCDEF - Grace Hopper 13/10/2022 12:25-12:45 - Niveau : Intermédiaire - Français

Depuis plusieurs années, Symfony fournit tout ce qu'il faut pour créer des workers PHP asynchrones, notamment grâce à son composant Messenger. Nous verrons comment configurer ces workers pour les faire tourner en production avec systemd, ce "gestionnaire de système et de services" qui s'est imposé sur la plupart des distributions GNU/Linux. systemd permet, entre autres, de déclarer des services à exécuter et maintenir en vie. Disponible nativement sur bon nombre d'OS populaires, il sera donc un allié parfait pour simplifier la mise en place de nos workers.

Atelier OSS : découvrez comment contribuer à API Platform

Salle d'atelier "Wall Street" 13/10/2022 13:15-14:15 - Niveau : N/A - Français

Vous utilisez API Platform et vous voulez contribuer à ce logiciel libre, mais vous ne savez pas par où commencer ? Vous avez trouvé un bug et vous voulez essayer de le corriger vous-même ? Vous souhaitez proposer une nouvelle fonctionnalité au framework ? Kévin Dunglas sera présent lors de l'atelier OSS du Forum pour vous accompagner et répondre à vos questions !

Rendez-vous en salle Wall Street (accès par le foyer). Atelier sans inscription et limité à une douzaine de personnes en fonction de la capacité de la salle : premier.e.s arrivé.e.s, premier.e.s servi.e.s !

Coup de projecteur : la tech chez Yousign

Hall sponsors "Time Square" 13/10/2022 13:20-13:30 - Niveau : N/A - Français

Pierre Klopfer, Talent Acquisition Manager - Tech chez Yousign, vous présentera l'entreprise et ses valeurs, et vous parlera en détails de leurs équipes Tech/Produit.

Coup de projecteur : être dev PHP chez Klaxoon

Hall sponsors "Time Square" 13/10/2022 13:40-13:50 - Niveau : N/A - Français

La R&D regroupe les équipes chargées de l'innovation et du développement des produits Klaxoon. Klaxoon, c’est LA solution qui révolutionne les réunions depuis 2015, en imaginant et en concevant des outils qui permettent aux équipes de travailler ensemble plus efficacement. Pour développer cette plateforme ultra-collaborative, nous avons adopté une organisation en feature team et communauté tech. Benjamin Letrou, Tech Manager, vous présentera l’organisation et le déroulé d’une semaine type au sein de nos équipes.

Coup de projecteur : Casse-tête challenge avec BedRock

Hall sponsors "Time Square" 13/10/2022 14:00-14:10 - Niveau : N/A - Français

Logique et habilité sont les atouts majeurs des devs. Venez vous challenger et relever le défi en tentant de résoudre le plus de casse-têtes possibles dans le temps imparti ! À gagner : 3 cryptex pour les meilleurs joueurs ou joueuses !

Présentation des speakers

Ballroom GHJKLM - Katherine Johnson 13/10/2022 14:30-14:35 - Niveau : N/A - Français

Grâce à ces présentations en 5 minutes chrono, faites votre choix parmi les conférences à venir dans la prochaine demi-journée.

Sauve un-e dév, écris une doc !

Ballroom GHJKLM - Katherine Johnson 13/10/2022 14:40-15:20 - Niveau : N/A - Français

Vous êtes développeur ou développeuse PHP : vous aimez programmer, réfléchir. Vous aimez créer des applications ou des bibliothèques de qualité. Mais pourquoi personne ne les utilise ? Parce que votre documentation n'est pas à la hauteur !

Justement : je suis Technical Writer et mon métier est de vous aider à valoriser votre logiciel auprès de ses utilisateurs et utilisatrices, à travers une bonne doc. Comprenons comment architecturer, concevoir et rédiger votre contenu. Découvrons les outils qui vous procurerons une aide précieuse. Enfin, facilitons sa mise à jour pour qu'elle soit pérenne.

Dorénavant, vous saurez identifier les passages obligés et ceux où vous pouvez gagner du temps.

Watch the clock

Ballroom ABCDEF - Grace Hopper 13/10/2022 14:40-15:20 - Niveau : Grand public - Anglais

Creating current time information in code is rather easy by calling time() or new DateTimeImmutable() directly when the information is necessary. But that then makes the code a nightmare to test. In this session we will see how PSR-20 allows us to change that by still making it easy to generate current time information but also allowing one to test the code. And we will get some background info about why it was designed in such a way, what obstacles are in the way and how to still be able to use the feature.

Récit du passage d’une migration d’un hébergement classique à une infra cloud PAAS

Ballroom GHJKLM - Katherine Johnson 13/10/2022 15:25-16:05 - Niveau : N/A - Français

Début décembre, appel en catastrophe d’un client d’ami : leur site est hébergé par un prestataire qui ne gère plus le serveur, qui est une boîte noire et qui sature totalement. Nous ne connaissons ni le code ni l’infrastructure à ce moment-là.

Ce sera donc une opération coup de poing comme je les chéris : la situation initiale étant totalement insatisfaisante, je ne peux que faire mieux, je vais pouvoir aller vite sans trop de craintes. Mode pompier.

Cette conférence permettra de montrer le passage d’une archi classique à une archi cloud, à pas cher, en montrant tous les aléas rencontrés lors de cette migration. Ce sera l’occasion de balayer pas mal d'idées reçues sur le cloud et les performances.

Un moteur bien huilé

Ballroom ABCDEF - Grace Hopper 13/10/2022 15:25-16:05 - Niveau : Grand public - Français

Le Rule Engine est un puissant pattern qui nous permet d’implémenter des systèmes complexes de manière découplée, extensible et testable.

Découvrons comment nous avons implémenté des centaines de règles métier dans une application Symfony tout en gardant un code simple et lisible, notamment grâce à l’injection de dépendances.

Cela a permis de facilement s’adapter aux changements de besoin et de permettre des cas d'usages complexes (chaînage des règles, utilisation d'APIs, requêtes à la base de données, etc).

OpenTelemetry: vers un standard pour surveiller vos applications

Ballroom GHJKLM - Katherine Johnson 13/10/2022 16:35-17:15 - Niveau : Grand public - Français

Là, maintenant, tout de suite, êtes-vous capable de dire si votre site internet fonctionne correctement ? Et en cas d’incident en pleine nuit, pouvez-vous déterminer la chronologie des évènements ? C’est à ces questions que la télémétrie apporte une réponse, en instrumentant votre code et en envoyant les données collectées dans un outil d’analyse. Mais quel est le meilleur ? Est ce qu’il existe des solutions (presque) gratuites ? Peut-on changer d’avis facilement ? C’est là qu’OpenTelemetry intervient. OpenTelemetry propose une API de télémétrie, indépendante du langage et indépendante du service d’analyse utilisé. Fortement encouragé (et déjà supporté!) par les principaux acteurs du marché, poussé par une communauté active, ce protocole a tout pour devenir un standard de communication pour la télémétrie. Dans cette conférence nous aborderons les concepts fondamentaux de cette API, l’écosystème PHP existant, ainsi que des idées à mettre en pratique (et en production !) dès la semaine suivante.

Les femmes à barbe et à capuche sortent de la grotte pour sauver le numérique et son impact

Ballroom ABCDEF - Grace Hopper 13/10/2022 16:35-17:15 - Niveau : Grand public - Français

Deux développeuses back-end engagées rêvent de rendre l’ensemble de la tech accessible. Ce n’est donc pas un hasard qu’elles se soient trouvées chez Toovalu, éditeur de logiciel B-corp (société à mission) engagé pour le Climat et la RSE.

Dans ce talk on parlera du "combat" des développeurs et développeuses pour intégrer l'accessibilité du numérique dans notre entreprise où la culture web était à l'origine pratiquement inexistante. Nous vous présenterons également différentes méthodes et processus que nous avons mis en place pour permettre à tous les collaborateurs et collaboratrices d'intégrer l'accessibilité à leurs réflexes. Nous allons expliquer comment nous nous y sommes prises pour réparer l'accessibilité de l'outil que l'on développe.

RINA, le nouvel Internet

Ballroom GHJKLM - Katherine Johnson 13/10/2022 17:20-18:00 - Niveau : N/A - Français

Nous sommes ravis d'accueillir Louis POUZIN pour un sujet sur l’Internet du futur : RINA ! Expert en communications et réseaux d’ordinateurs à la réputation internationale, l’un des créateurs français d’Internet, Louis POUZIN déploie le concept d’un nouvel internet non-TCP/IP avec RINA (RecursiveInterNetwork Architecture) imaginé par un de ses collègues de Boston, John Day, ancien de l’ARPAnet.

Burger Quiz Sauce AFUP

Ballroom GHJKLM - Katherine Johnson 13/10/2022 18:00-18:40 - Niveau : N/A - Français

Le célèbre jeu de Canal+ passe au mixer de l'AFUP, pour des questions sur l'écosystème, l'association et tout ce qui s'en rapproche de près ou de très très très (très) loin ! Le public est invité à participer, mais surtout, à rire et à encourager les équipes ketchup et mayo sur scène. Vous avez votre place et vous aimeriez intégrer une des deux équipes ? Inscrivez-vous pour peut-être rejoindre l'une d'elles.

Présentation des speakers

Ballroom GHJKLM - Katherine Johnson 14/10/2022 09:35-09:40 - Niveau : N/A - Français

Grâce à ces présentations en 5 minutes chrono, faites votre choix parmi les conférences à venir dans la prochaine demi-journée.

Papa et Maman nettoient l'internet

Ballroom GHJKLM - Katherine Johnson 14/10/2022 09:45-10:25 - Niveau : N/A - Français

Dans une conférence à deux voix, nous vous proposons une plongée dans une opération de sauvetage du Web actuel.

Comment limiter l'impact de nos applications au quotidien? L'éco-conception c'est bien mignon mais quand on arrive sur un projet qui traine une DB trop lourde pour lui et un legacy tout pourri, il est plus difficile de déterminer par où commencer à faire le ménage.

Ca tombe bien, c'est notre quotidien le ménage d'internet. On aimerait le partager avec vous pendant cette conférence.

Par des exemples concrets, nous évoquerons avec vous les défis liés aux fonctionnalités à (ne pas) développer puis nous vous donnerons des arguments pour orienter les choix d'hébergement et d'architecture pour terminer avec les bonnes pratiques de code (en PHP et Symfony mais pas seulement) que nous transmettons à nos clients. Nous souhaitons tous travailler à construire un web plus propre, voici comment nous avons décidé de nous y atteler dans la coopérative.

Comment décide-t-on de créer un composant Symfony ?

Ballroom ABCDEF - Grace Hopper 14/10/2022 09:45-10:25 - Niveau : Intermédiaire - Français

Si vous observez l'évolution de Symfony au cours du temps, vous vous demandez peut-être comment la core-team décide qu'un sujet donné ferait un bon composant ? Il y a déjà des librairies existantes pour presque tout, alors pourquoi en créer de nouvelles ? Comment Symfony s'inspire des autres projets et est-ce que ça arrive souvent ? Est-ce que le fait que les composants Symfony soient utilisés un peu partout leur apporte des fonctionnalités additionnelles ? Comment sont choisies les dépendances de Symfony ? Ou de façon plus générale : comment le projet Symfony interagit-il avec les autres frameworks et librairies ?

Lors de cette conférence, je vous propose d'étudier ces questions, pour vous permettre de comprendre les raisonnements sous-jacents. Ce sera l'occasion d'illustrer les fameux "package principles" et peut-être de vous donner matière à mieux choisir la façon dont vous-même décidez d'adopter (ou de réécrire) telle ou telle dépendance.

Typage en PHP comment ça fonctionne ?

Ballroom GHJKLM - Katherine Johnson 14/10/2022 10:30-11:10 - Niveau : N/A - Français

PHP est un langage qui a été conçu sans système de typage mais dont un a été introduit au fur et à mesure.

Dans ce talk nous ferons une exploration en profondeur du système de typage de PHP: 

  • Les différents types disponibles
  • La représentations des types en internes 
  • Comment PHP valide et coerce les types lors de l'exécution
  • Comment PHP assure la compatibilité des types entres classes enfants et parentes (Liskov Substitution Principle)

Protéger votre application avec l’en-tête HTTP de sécurité « Content Security Policy »

Ballroom ABCDEF - Grace Hopper 14/10/2022 10:30-11:10 - Niveau : N/A - Français

Chaque jour, de nombreux sites sont la cible d'attaques XSS, CSRF, clickjacking ou d'autres joyeusetés. Les conséquences sont souvent bénignes mais peuvent être autrement plus graves quand il s'agit de vol de données, de diffusion de malware ou de defacing de site.

Heureusement, de nouveaux mécanismes de sécurité proposés par les navigateurs Web offrent aux développeurs des moyens de (mieux) protéger leurs applications. Dans le cadre de cette présentation, nous verrons comment les mettre en œuvre progressivement et sans douleur.

Sortir du cadre

Ballroom GHJKLM - Katherine Johnson 14/10/2022 11:40-12:20 - Niveau : Intermédiaire - Français

Symfony, comme tout framework, vient avec un ensemble de lignes directrices et autre "defaults". Structure des répertoires, fichiers d'amorçage, packages installés, configuration automatique, conventions de codage... toutes ces choses que l'on obtient lorsque l'on crée un nouveau projet.

Quel est le but de ces defaults ? Doit-on s'y tenir ? Ou pouvons-nous nous en écarter ? Et si on choisit d'en dévier, à quel coût ? Est-ce que cela vaut encore la peine d'utiliser un framework ?

Dans cette présentation, nous passerons en revue les différents axes sur lesquels Symfony nous fournit des defaults, en passant par un voyage dans le temps visant à comprendre comment Symfony a évolué sur le sujet et comment il se positionne par rapport aux autres frameworks PHP.

A partir de cet état des lieux, nous verrons un ensemble de préconistations visant à déterminer quelles sont les lignes dont nous sommes susceptibles de nous écarter, pourquoi et à quel prix. Avec pour objectif d'exploiter au mieux notre framework de prédilection tout en mettant nos besoins métier au centre de nos applications.

Tester à travers OpenAPI, ou comment valider votre documentation !

Ballroom ABCDEF - Grace Hopper 14/10/2022 11:40-12:20 - Niveau : Grand public - Français

Aujourd'hui les APIs sont partout, les documenter correctement est un prérequis pour qu'elles soient utilisées correctement. Cependant un problème reste présent quand on a affaire à de la doc : comment garantir qu'elle est à jour ou que le code l'implémente correctement ?

J'ai rencontré ces problèmes sur un projet où nous utilisons OpenAPI. Malgré la volonté d'avoir une documentation à jour et propre, les utilisateurs et utilisatrices rencontraient des problèmes. J'ai commencé à chercher un moyen de valider cette documentation pour capturer les erreurs avant les utilisateurs et utilisatrices. OpenAPI est devenu le moyen le plus puissant de décrire une API HTTP aujourd'hui. L'écosystème est très riche avec de nombreux générateurs (code et documentation). L'avantage de ce format est qu'il est très technique.

Dans ce talk, je vais vous présenter mes recherches et comment nous avons finalement mise en place des tests automatiques basés sur la documentation. Combiné à un système d'intégration continue, il détecte les erreurs et nous laisse les résoudre avant de passer en production. La documentation permet de vérifier que l'API fonctionne et l'API permet de vérifier que la documentation est à jour.

Aujourd'hui toute l'équipe est plus confiante sur notre code et notre documentation. Toutes ces validations ont également aidé les devs qui n'étaient pas à l'aise avec l'écriture de la documentation à prendre confiance et être sereins lors de modifications…

Revue de code : on n’est pas venu pour souffrir !

Ballroom GHJKLM - Katherine Johnson 14/10/2022 12:25-12:45 - Niveau : Grand public - Français

J'ai rejoint ma nouvelle équipe il y a 6 mois, avec une appréhension. Comment allais-je vivre les revues de code par des collègues que je ne connais pas encore ? Incompréhensions, malentendus : la communication écrite rend cet exercice très délicat. Vous avez été blessé-e par un commentaire ? Etait-il vraiment mal intentionné ? Vous avez blessé quelqu'un sans le vouloir, à cause d'une tournure maladroite ?

Dans mon équipe, j'ai découvert un cadre qui m'a permis de me sentir bien accueillie dès mon arrivée. En adoptant une posture et une convention bien adaptée, on peut largement diminuer le risque de mal se comprendre. Non seulement on communique mieux, mais on améliore la qualité globale du projet.

Vous n'aurez plus aucune raison de souffrir !

Une extension PHP rouillée

Ballroom ABCDEF - Grace Hopper 14/10/2022 12:25-12:45 - Niveau : Intermédiaire - Français

Écrire une extension PHP en 2022, quand on ne maîtrise pas forcément le C peut-être un parcours du combattant. Quand on vient du langage PHP, les concepts de gestion de mémoire et les bugs associés (use after free par exemple) sont lointains et peuvent nous conduire à des failles de sécurité importantes. En plus de cela, nous devons aussi absorber l'utilisation de l'API de Zend Engine. J'ai découvert Rust, il y a peu de temps : un langage qui garantit fiabilité, performance, productivité et surtout permettant d'ouvrir une passerelle vers le C. Voyons voir si l'expérience serait plus heureuse avec ce langage.

On commencera par faire un tour de l'état de l'art des extensions PHP et pourquoi Rust. On utilisera aussi la crate Rust ext-php-rs et voir comment wrapper des API Rust pour ainsi les proposer côté utilisateur PHP. On terminera sur comment automatiser la distribution de notre extension et enfin, conclure sur la valeur ajoutée.

Atelier OSS : découvrez comment contribuer à Symfony

Salle d'atelier "Wall Street" 14/10/2022 13:15-14:15 - Niveau : Grand public - Français

Nicolas vous propose un atelier OSS pour discuter des issues et PRs ouvertes sur Symfony. Vous avez toujours eu envie de contribuer sans savoir par où commencer ? Voilà l'occasion parfaite pour mettre la main à la pâte. Venez avec votre laptop et une copie du repo Symfony, ça va coder.

Rendez-vous en salle Wall Street (accès par le foyer). Atelier sans inscription et limité à une douzaine de personnes en fonction de la capacité de la salle : premier.e.s arrivé.e.s, premier.e.s servi.e.s !

Coup de projecteur : relevez les challenges Sensio & Smile

Hall sponsors "Time Square" 14/10/2022 13:20-13:30 - Niveau : N/A - Français

Rendez-vous sur le stand de Sensio & Smile pour relever les challenges qu'ils vous ont préparés, et, peut-être, remporter un éléphpant Symfony ! Venez compléter votre collection d'éléphpant et vous mesurer à la communauté.

Coup de projecteur : Security Quizz avec YesWeHack

Hall sponsors "Time Square" 14/10/2022 13:40-13:50 - Niveau : N/A - Français

Venez tester vos connaissances en sécurité sur le stand YesWeHack ! Êtes-vous prêt.e à relever le défi ?

Coup de projecteur : Découverte d'API Platform 3 avec Les-Tilleuls.coop

Hall sponsors "Time Square" 14/10/2022 14:00-14:10 - Niveau : N/A - Français

Antoine Bluchet, lead developpeur chez Les-Tilleuls.coop et membre de la core team API Platform, vous présentera la dernière version du framework dédié aux APIs orienté resources.

Présentation des speakers

Ballroom GHJKLM - Katherine Johnson 14/10/2022 14:30-14:35 - Niveau : N/A - Français

Grâce à ces présentations en 5 minutes chrono, faites votre choix parmi les conférences à venir dans la prochaine demi-journée.

Drupal, je vous 10 tout !

Ballroom GHJKLM - Katherine Johnson 14/10/2022 14:40-15:20 - Niveau : Grand public - Français

Quoi ?! Vous avez encore raté le coche et vous ne savez pas que Drupal 10 sort le 14 décembre ? Allez, parce que c’est vous, on se fait une séance de rattrapage du présent et surtout du futur du CMS à la goutte d’eau. Sous le capot : Symfony 6, PHP 8.1, CKEditor 5, des thèmes modernes out of the box et du découplage facilité. En voiture !

FrankenPHP, dans les entrailles de l'interpréteur PHP, de machines virtuelles et des threads

Ballroom ABCDEF - Grace Hopper 14/10/2022 14:40-15:20 - Niveau : Confirmé - Français

Lors de l'AFUP Day, je vous ai présenté FrankenPHP, un SAPI experimental permettant d'embarquer notre langage préféré dans les serveurs web écrits en Go tels que Caddy ou le serveur web local de Symfony CLI. Ce talk revient sur le progrès effectués depuis l'AFUP Day, et sur les nouveaux problèmes rencontrés suite aux retours de la communauté.

FrankenPHP utilise cgo pour permettre au code Go d'appeller le code de l'interpreteur PHP écrit en C, et inversement. Cela revient à faire exécuter la machine virtuelle de PHP elle même au sein d'un process géré par le runtime Go. Cette technique offre des opportunités immenses :

  • simplifier vos déploiements en embarquant directement un serveur web, l'interpréteur PHP et votre code source dans un seul binaire ;
  • conserver les services des applications Symfony ou Laravel chargés dans la mémoire du serveur web et s'en servir pour traiter plusieurs requêtes HTTP ;
  • écrire des fonctions en Go (ou en C, voir même en assembleur) et les appeler directement depuis le code PHP ou encore

Cependant, faire cohabiter le runtime de deux langages dans un seul process n'est pas chose aisée. Dans ce talk orienté programmation système, nous étudierons tous les pièges que nous avons du contourner pour réaliser ce synchrétisme particulier. Ca sera l'occasion de découvrir comment fonctionne l'interpréteur PHP, son mode ZTS, les threads systèmes et les green threads de Go, les signaux Unix ou encore les problèmes que peuvent poser les astuces utilisées par l'interpréteur PHP pour implémenter des fonctionnalités telles que le max_execution_time.

Note : il n'est pas nécessaire d'avoir vu le premier talk pour assister à celui ci.

Ce qu'un crash complet de notre production nous a appris

Ballroom GHJKLM - Katherine Johnson 14/10/2022 15:25-16:05 - Niveau : N/A - Français

En janvier 2020 on perd 50% de nos serveurs. Notre cluster RabbitMQ ? Mort ! Nos clusters Redis, ElasticSearch ? Morts. Nos frontaux ? Morts ! Les gateway ? Et ben non, celles-ci ne sont pas tombées, tiens…

3 semaines de rush intense plus tard, une décision est prise : ÇA N’ARRIVERA PLUS JAMAIS !

2 ans plus tard, voici les actions que nous avons menées pour avoir un plan de reprise d’activité efficace.

De la documentation, à l’automatisation, en passant par les workflows de travail, voici quelques idées pour que vous ne viviez pas ce que l’on a subi en 2020.

Piochons dans les pratiques de DDD, programmation fonctionnelle and co. pour notre bien à toutes et tous !

Ballroom ABCDEF - Grace Hopper 14/10/2022 15:25-16:05 - Niveau : Grand public - Français

On n’a pas besoin d’utiliser 100% de « X » pour utiliser des pratiques/techniques de « X ».

Remplacez « X » par DDD, programmation fonctionnelle, CQRS, CQS, Hexagonal/Clean/Onion architecture et bien d’autres. Il n'y a pas de méthode ou technique qui soit LA réponse dans tous les cas.

Chacun(e) a ses avantages et inconvénients. Chacun(e) impacte notre façon de penser, notre façon de communiquer au sein de l’équipe. Chacun(e) nous apprend des choses, techniques ou humaines etc..

Par exemple, comment le DDD ou l'architecture hexagonale peuvent nous aider dans une application Drupal ? Est-ce que la complexité amenée en vaut la chandelle ? Vous verrez qu'ils peuvent être utiles même dans cette situation.

Nous verrons qu'il ne faut pas hésiter à piocher dans des concepts ou pratiques si cela convient à notre contexte actuel. N'oublions pas d'utiliser le bon outil au bon moment !

Il était une fois... les navigateurs

Ballroom GHJKLM - Katherine Johnson 14/10/2022 16:35-17:15 - Niveau : Grand public - Français

De grandes batailles et de grandes innovations, racontées et dessinées en live !

Venez écouter l’histoire animée des navigateurs, depuis le CERN jusqu'à aujourd'hui ... et même leur possible avenir ! Replongez-vous dans l'aventure et les grandes idées de la navigation Web, bercé par la voix de Noël et les dessins de Pierre !

BFF, notre best friend forever pour faire plein d’applications frontend ?

Ballroom ABCDEF - Grace Hopper 14/10/2022 16:35-17:15 - Niveau : Confirmé - Français

Chez Bedrock nous fournissons des applications de streaming (ASVOD, AVOD) pour plusieurs clients en France et en Europe, chaque application étant déployée sur de nombreux appareils (ordinateur, mobile, set top box, tv connecté, consoles de jeux, tv stick etc …). Il était devenu très difficile de gérer la création et l’évolution de ces nombreuses applications qui requêtaient et formataient chacune elles-mêmes les données dont elles avaient besoin.

Pour cela, en 2018, nous avons décidé de nous lancer dans la création d’un Back For Front afin d’unifier et faciliter les interactions backend et frontend. Au cours de cette conférence nous passerons en revue :

  • les concepts du back for front
  • l’architecture api-gateway et micro service mise en place
  • Les gains fonctionnels et la vélocités gagnée
  • les différents mécanismes développés pour absorber les importants pic de charge (résilience, circuit breaker, fallbacks etc.)
  • les impacts techniques et organisationnels d’une telle architecture

Aujourd’hui notre API Gateway BFF opère 92 frontends délivrant 1.5 milliards de vidéos par an pour 45 millions d’utilisateurs actifs (MaU). Venez découvrir notre retour d’expérience sur la mise en place d’un tel projet.

Internet et la géopolitique

Ballroom GHJKLM - Katherine Johnson 14/10/2022 17:20-18:00 - Niveau : N/A - Français

On pense encore parfois à l'Internet comme une sorte de territoire séparé, flottant au-dessus des passions humaines et des affrontements entre nations. Mais ce n'est évidemment pas le cas : les ordinateurs, les câbles et surtout les humains qui s'en occupent vivent dans un espace physique qui est toujours structuré par les situations nationales. La guerre en Ukraine provoquée par l'agression russe a une nouvelle fois illustré, hélas, ce point. D'autres affrontements, plus mesurés, ont souvent eu lieu. On va donc parler des liens entre l'Internet et les États-nations.

Keynote de clôture

Ballroom GHJKLM - Katherine Johnson 14/10/2022 18:00-18:10 - Niveau : N/A - Français

À bientôt !