Programme Forum PHP 2020

Découvrez ces quelques premiers noms dévoilés, la suite arrive prochainement !

Keynote d'ouverture

Katherine Johnson 22/10/2020 09:00-09:20 - Niveau : N/A - Français

Bienvenue au Forum PHP 2020 - édition en ligne

Utopie de la généricité

Katherine Johnson 22/10/2020 09:30-10:10 - Niveau : Grand public - Français

Pourquoi, avec le temps, nos développements se complexifient ? Pourquoi n'arrivons-nous pas à conserver un code simple ? Quand on essaie de voir à plus long terme, souvent cela nous prend du temps, ce n'est pas simple à utiliser, et d'ailleurs, ce n'est pas utilisé ! Bref, est-ce possible de concevoir du code générique, réutilisable et qui dure longtemps ? Vous allez voir que la réponse n'est pas toujours évidente, et qu'il serait temps de fixer des règles.

How your PHP application can get hacked, and how to prevent that from happening?

Grace Hopper 22/10/2020 09:30-10:10 - Niveau : Intermédiaire - Anglais

You’ve probably heard about XSS, SQL Injection, and RCE. Very few developers out there have witnessed first-hand what exploiting any of the mentioned vulnerabilities looks like, and therefore don’t necessarily understand the consequences that having such vulnerabilities in your application can have. In this talk, we’ll exploit some commonly known vulnerabilities (OWASP top 10) and misconfigurations that can occur to a PHP application running on a Linux based host. By learning to think like a hacker you’ll be able to develop more secure applications with PHP, and to keep your users, clients, and yourself safe.

This presentation consists of security concept theory sections from PHP developers' point-of-view and a few hands-on hacking demonstrations. At the end of the presentation, we go through a set of concrete action steps to secure our applications from the vulnerabilities we learned about earlier.

État de l'art d'Elasticsearch avec PHP

Katherine Johnson 22/10/2020 10:15-10:55 - Niveau : Intermédiaire - Français

Tout le monde utilise Elasticsearch, mais qui en comprend vraiment les particularités ? Dans ce talk je vous expose mes recommandations sur la mise en place du moteur de recherche dans un applicatif Web et les pièges dans lesquels nous tombons le plus souvent. Du tuning de pertinence à la mise à jour de mapping en production sans perte de service, vous apprendrez à maîtriser et reprendre confiance dans votre utilisation d'Elastic avec PHP.

Auto-critique de la revue de code bienveillante

Grace Hopper 22/10/2020 10:15-10:55 - Niveau : N/A - Français

La revue de code est omniprésente dans le développement web. Ses objectifs sont multiples : qualité du code, formation des développeurs juniors, diffusion des bonnes pratiques de l'équipe, etc.

Après 6 années passées à commenter le code des autres et à lire leurs commentaires au sein de la même entreprise, il est temps de faire un bilan et de voir si la revue de code a tenu ses promesses. De nombreux articles et présentations expliquent comment implémenter les revues de code de façon efficace, notamment en étant bienveillant envers les autres et en mettant de côté son ego : le fameux « vous n’êtes pas votre code ».

Néanmoins, cette approche ne tient pas toujours compte des dynamiques complexes qui existent au sein d'une équipe, et elle peut même avoir tendance à les effacer. Par exemple, l'horizontalité qui découle de l'idée qu'on parle du code et pas des personnes peut avoir tendance à ignorer (et donc renforcer) les structures de domination sociale existantes. Si les principes de la revue de code bienveillante restent indispensables, il me semble qu'ils ne sont pas suffisants pour garantir une revue de code qui atteigne ses objectifs.

Je partirai d'observations faites au sein de l'équipe de La Ruche qui dit Oui!, de certaines conséquences négatives parfois contre-intuitives de la revue de code (même bienveillante), voire complètement contraires au but recherché : du code parfois difficile à maintenir, certains projets qui n'avancent pas, des développeurs juniors qui n'ont pas toujours la sensation de progresser, et dans le pire des cas du mal-être au travail. En mettant en lumière certains mécanismes insoupçonnés ou ignorés, nous verrons comment la revue de code peut avoir ces effets indésirables, et des pistes de réflexion pour les éviter.

PHP 8: a new version, a new era

Katherine Johnson 22/10/2020 11:25-12:05 - Niveau : Grand public - Français

PHP 8 is coming, and you might be wondering: what are the new features? Have they fixed that weird bug? Is my application getting any faster? Can I support both PHP 7 and 8 versions in my library or framework?

In this talk, we are going to spend some time looking at everything that has changed in PHP 8, both internally and externally, either new features and changes of behavior (Break Compatibility, you know them).

As one of the Release Managers, Gabriel Caruso is going to tell you all about it, giving you the resources to get the latest major version of PHP, that is scheduled for November 2020, up and running!

Quoi de 9 Drupal ?

Grace Hopper 22/10/2020 11:25-12:05 - Niveau : Grand public - Français

Drupal, ça vous parle ? Si le nom vous évoque un outil ringard bourré de code legacy, j'ai de bonnes nouvelles pour vous !

Symfony, Twig, Composer... avec la version 8, le CMF est entré dans la modernité. Nous voici à la version 9 depuis début juin et la transformation se poursuit.

Alors, une petite séance de rattrapage, ça vous tente ?

Introduction à OpenID Connect

Katherine Johnson 22/10/2020 12:10-12:30 - Niveau : N/A - Français

"T'as besoin d'une application pour authentifier tes utilisateurs ? Un serveur OAuth2 c'est ce qu'il te faut !"

C'est faux. Trop souvent le protocole OAuth2 est utilisé à tord pour authentifier des utilisateurs. Ce n'est pas fait pour ça. En revanche, un protocole relativement semblable existe dans ce but : OpenID Connect.

Je vous propose de vous expliquer comment fonctionne le protocole OpenID Connect et en quoi il est différent d'OAuth2, pour ne plus se tromper d'usage.

REX sur le chiffrement de base de données

Grace Hopper 22/10/2020 12:10-12:30 - Niveau : Grand public - Français

Nous stockons tous des données, de plus en plus nous devons mettre en place des solutions pour les sécuriser. Nous allons voir les solutions pour sécuriser ces précieuses données comment les chiffrer et pouvoir même rechercher dans ces mêmes données chiffrées.

Utiliser le protocole Vulcain pour créer des API REST ultra-performantes

Katherine Johnson 22/10/2020 14:30-15:10 - Niveau : Intermédiaire - Français

Au fil des années, plusieurs formats ont été créés dans l’objectif d’améliorer les performances des API Web : (n + 1, sur-extraction, sous-extraction)… La dernière solution à la mode pour créer des API rapides se nomme GraphQL, un hack réseau malin… mais que HTTP/2 et HTTP/3 rendent désormais désuet !

Ces nouvelles versions du protocole au coeur Web disposent de fonctionnalités natives permettant de créer des API rapides et idiomatiques : multiplexage, Server Push, dé-duplication des en-têtes, compression, connexions persistantes…

Vulcain est un tout nouveau protocole qui tire parti au maximum de HTTP/2 et 3 pour améliorer drastiquement la performance des API REST !

Après quelques rappels concernant HTTP et REST, nous découvrirons comment est conçu Vulcain, et comment il est facile à mettre en place avec les API PHP (réalisées à l’aide d’API Platform ou non), ainsi que comment en tirer parti en JavaScript.

Performance : mais que se passe-t-il après le backend ?

Grace Hopper 22/10/2020 14:30-15:10 - Niveau : Grand public - Français

Même avec un un code backend performant, l’utilisateur peut attendre plusieurs secondes avant de pouvoir utiliser votre interface : mais pourquoi ? Grâce à des exemples tirés de grands sites français (Le Monde, Cdiscount, Glamour …) nous allons voir les techniques modernes pour améliorer les performances d’un site, telles que perçues par l’utilisateur. Loin des seuls conseils poussés par Google LightHouse, nous verrons si HTTP/2 est vraiment une bonne affaire, ce que coûte un JS sous Webpack, si la compression d’images est une technique vaudou, et ce que peuvent faire graphistes ou intégrateurs pour accélérer un site. Outre les techniques nous verrons 2 outils phares de la perf et on discutera de comment gérer un projet de d'amélioration des perfs.

La scalabilité d’une équipe / d’un pôle technique

Katherine Johnson 22/10/2020 15:15-15:55 - Niveau : N/A - Français

Vous êtes dans l’équipe technique d’une entreprise, composée de quelques développeurs, dans 1 ou 2 équipes, et votre entreprise grandit, et il faut augmenter la capacité de production, et donc la taille de l’équipe technique. Sauf que comme 9 femmes ne font pas un bébé un 1 mois, 4 équipes de 6 personnes ne produisent pas automatiquement 2 fois plus que 2 équipes de 6 développeurs.

Je me propose de vous faire un retour d’expérience sur comment nous avons abordé la scalabilité du pôle technique de Bedrock, pour passer de 10 équipes réparties en 3 verticaux techniques, à plus de 30 équipes dans 5 verticaux techniques, en essayant de conserver une cohésion technique et fonctionnelle, et d’optimiser les flux de développements.

Trop de mock tue le test : ce que l'archi hexagonale a changé

Grace Hopper 22/10/2020 15:15-15:55 - Niveau : N/A - Français

Notre chemin vers les tests automatisés commence souvent par ces certitudes :

  • 1 Test Unitaire = 1 méthode d'une seule classe
  • Remplaçons toute autre classe par un Mock
  • Toute classe a son Test Unitaire, pour respecter la pyramide de tests

Mais ces tests vous aident-ils lors du refactoring, ou devez-vous sans cesse les modifier, devenant des Tests Fragiles ? Les écrivez-vous vraiment en premier pour vous servir d'aide, ou vous freinent-ils à la fin de votre travail ?

Chez Meetic, l'Architecture Hexagonale (ou Ports & Adapters) et le DDD ont révolutionné notre manière de tester. Avec des exemples concrets de code et de refactoring, découvrez :

  • Ce que Unitaire dans Test Unitaire signifie réellement
  • Comment nous testons nos fonctionnalités métier en ne mockant que les détails techniques
  • Pourquoi nous jetons nos Tests Unitaires sur les couches techniques pour ne garder que des Tests d'Intégration avec wiremock-php et docker-compose

Recettes de communication efficace au travail

Katherine Johnson 22/10/2020 16:25-17:05 - Niveau : N/A - Français

En galère avec mes jeunes enfants, j'ai acheté des bouquins de communication positive. J'ai été surprise de voir que ça a marché du tonnerre… surtout avec mes collègues ! Laissez-moi vous montrer ce que vous pouvez en retirer, surtout si vous êtes en position de lead ou de management…

Popularisés par la tendance récente de la parentalité positive, ces outils de communication positive et d’intelligence émotionnelle sont pourtant efficaces dans toutes les relations interpersonnelles. J’ai l’impression qu’ils m’ont rendue vraiment meilleure dans mon rôle de lead développeuse (aider des collègues à apprendre, évaluer du code ou des candidats, prendre des décisions difficiles, travailler en équipe parfois sous tension…), et qu’ils m’ont aidée à surmonter mes propres problèmes de stress. Comme ce sont des outils assez simples à mettre en œuvre et qu’ils sont très efficaces, je veux les partager. Pour des relations plus apaisées et efficaces au travail, et pour davantage d’intelligence émotionnelle dans le monde.

Fun with PHP

Grace Hopper 22/10/2020 16:25-17:05 - Niveau : Intermédiaire - Français

PHP est un langage de programmation très très très orienté web. Et si on sortait de la boîte ? FFI nous permet de faire de nouvelles choses. Et si on tentait des choses folles... Pourquoi pas une application fenêtrée ? Un jeu ? Avec un peu de créativité tout est possible !

Je ne pense pas que cette conférence soit absolument nécessaire à tout développeur PHP. (en fait elle est complètement inutile pour être plus précis) Mais ça sera un moment de détente et de culture inhabituel !

Promis, vous apprendrez quand même des choses.

Comment réduire les déchets numériques ?

Katherine Johnson 22/10/2020 17:10-17:40 - Niveau : N/A - Français

Impacts et alternatives à la (sur)consommation des téléphones et des ordinateurs. (abstract détaillé à venir)

Pourquoi 0.1 + 0.2 != 0.3, ou le monde mystérieux des nombres à virgule flottante.

Katherine Johnson 23/10/2020 09:30-10:10 - Niveau : Intermédiaire - Français

Et oui, si vous exécutez le code ci-dessus en PHP, et dans la plupart des autres langages, celui-ci vous confirmera bien que 0.1 + 0.2 n'est pas égal à 0.3.

Mais ce comportement étrange peut s'expliquer, voire même se justifier.

Les nombres à virgule flottante ont le pouvoir de nous ouvrir un univers complet et souvent peu compris. À condition bien sûr de les utiliser correctement.

Cette conférence présentera un peu de théorie et beaucoup d'exemples concrets.

De la Première Guerre du Golfe, au moteur de rendu graphique de Quake, en passant par le fusée spatiale Ariane 5, nous verrons ensemble les avantages et les dangers potentiels de l'utilisation des nombres à virgule flottante.

Nous tirerons de ces exemples des leçons que nous pouvons appliquer sur nos pratiques de développement quotidiennes.

La conférence couvrira également quand utiliser les nombre à virgule flottante, et quand les éviter (prix, facturation), et quelles sont les alternatives.

Propulser du temps réel avec PHP en 2020 !

Grace Hopper 23/10/2020 09:30-10:10 - Niveau : Intermédiaire - Français

Avec l'annonce du composant HTTP de Symfony en 2019 et son adoption courant 2020, de nouvelles possibilités de communication entre les applications PHP et le reste d'internet sont possibles ! Parmis elles l'utilisation de Mercure, un nouveau protocole construit sur la base de requêtes HTTP et de Server-Sent Events. Assemblés avec une application Symfony ces technologies permettent des usages dits de temps réel ! L'exemple courant est celui de la mise à jour des données de vos applications. Cela dit, qu'en est-il de la communication entre clients ? Voire entre serveurs ? Venez assister a un retour d'expérience autour d'un cas concret et découvrir ainsi de nouveaux axes d'amélioration pour des applications toujours plus réactives !

Comment ARTE a simplifié le développement multi-plateforme à l’aide d’une API orientée front

Katherine Johnson 23/10/2020 10:15-10:55 - Niveau : Grand public - Français

Chez Arte, les contenus de la chaîne sont disponibles sur le web et le mobile mais aussi sur les télévisions connectées ou les box des FAI. Cette diversité applicative nous a poussé à passer d’une API orientée métier à une API orientée front multi-support. Avec ce retour d’expérience, nous expliquerons comment nous avons simplifié le développement des applications en ré-équilibrant leur responsabilité et celle de l’API mais aussi en travaillant la structure des données pour les besoins parfois spécifiques des différents supports. Nous reviendrons aussi sur les choix techniques (parfois à contre-courant) qui ont été faits lors du développement.

Comment perdre sa surchage featurale ?

Katherine Johnson 23/10/2020 11:25-12:05 - Niveau : Grand public - Français

Le cycle de vie d'une application est un chemin nébuleux et plein de dangers. La complexité ne fait que croitre durant les mois et les années d'utilisation. L'un des plus gros challenges d'un développeur est de pouvoir la contrôler tout en ajoutant de nouvelles fonctionnalités (features).

Des solutions existent : le ré-écriture de code ou encore la maitrise de la dette technique. En effet, ces deux actions permettent de lever "la complexité accidentelle". Mais que faisons nous de la "complexité essentielle" ? La complexité qui n'est pas liée au code.

La seule solution : Supprimer des fonctionnalités ! Ce talk vous expliquera comment perdre la surcharge featurale de vos applications en comprenant la différence entre la complexité essentielle et la complexité accidentelle, mais aussi en vous donnant des clés pour mener à bien ce changement dans vos équipes projet.

PHP, c’est vous ! Et vous pouvez contribuer !

Grace Hopper 23/10/2020 11:25-12:05 - Niveau : Grand public - Français

Quand nous posons la question « qui contribue à PHP ? » lors des évènements que nous organisons ou auxquels nous participons, nous n’obtenons que très peu de réponses. Est-ce parce que peu d’entre nous savent ou aiment coder en C ? Pourtant, participer et contribuer ne se limite pas à des lignes de code, loin de là !

Avez-vous trouvé l’éditeur en ligne de la documentation de PHP ? Avez-vous soumis des patchs à composer et symfony ou même à magento et wordpress, qui sont open-source et attendent vos contributions ? Avez-vous testé les versions alpha de PHP 8 ? Voyez-vous comment organiser un Apéro PHP ou un Meetup ? Ou même un AFUP Day ou le Forum PHP ? Savez-vous que l’AFUP a besoin de vous ? Que c’est une association qui est là pour vous aider et ce qu’elle peut vous apporter ?

Avec mille et une façons de contribuer, venez faire un tour d’horizon de modes de contribution que vous n’aviez peut-être pas encore envisagés, ou dont vous vous étiez dit qu’ils n’étaient pas pour vous. Vous verrez que, vous aussi, vous pouvez contribuer à PHP ;-)

JSON en base de données, manipulons un peu cela

Katherine Johnson 23/10/2020 12:10-12:30 - Niveau : Grand public - Français

Une base de données relationnelle moderne peut facilement gérer du JSON. Avec quelques connaissances, vous pouvez facilement enrichir le comportement de votre modèle de données avec un soupçon de JSON. Nous verrons donc, comment utiliser certaines fonctionnalités avancées de mysql / mariadb et postgresql afin d'effectuer certaines recherches, créer des index, utiliser des colonnes virtuelles, etc. Au final, nous verrons que dans bien des cas, un peu de JSON résout pas mal de soucis, qu'une table ou plusieurs colonnes en plus, auraient rendu plus compliqué.

Le site de l'activité partielle, résumé d'un succès à quel prix ?

Grace Hopper 23/10/2020 12:10-12:30 - Niveau : Grand public - Français

Imaginez, nous approchons de la mi-mars, vous travaillez "tranquillement" sur un site pour le gouvernement dans une petite ville dont personne n'entend parler. Soudain, vous entendez des personnes quitter leur bureau alors qu'il n'est même pas midi : le bâtiment de 500 personnes est en train de se vider en préparation du confinement.

Malgré ce mouvement de foule, un de vos chefs arrive et vous dit en substance : "Toi tu restes jusqu'à nouvel ordre, on t'affecte au site de l'activité partielle car ça devient la priorité numéro une de la maison".

L’économie Française est sur le point de se mettre “en pause”. Du jour au lendemain, plusieurs millions d’établissements vont s’inscrire et demander à être indemnisés car forcés de s’arrêter le temps que les choses se calment.

Depuis ce moment où tout bascule, je vous propose de vous raconter brièvement comment le site de l'activité partielle a complètement changé d'échelle pendant la crise du covid-19 : succès, difficultés, tranches de vies au cours d'une expérience humaine inédite.

“Living documentation”. Quand notre définition produit, nos tests automatisés et notre documentation sont la même chose.

Katherine Johnson 23/10/2020 14:30-15:10 - Niveau : Grand public - Français

Pour de nombreuses équipes produit, le travail de 1) définition du produit, 2) ecriture de tests automatisés et 3) documentation (technique et non-technique) du produit sont des étapes complètement séparées du cycle de développement. Dans ce talk, nous allons explorer comment le Behaviour Domain Development, Behat et quelques autres outils connectés ensemble nous permettent d’avoir une documentation vivante (c’est-à-dire toujours à jour) de nos applications.

Jane & Webby ou la vie de mes amies

Grace Hopper 23/10/2020 14:30-15:10 - Niveau : Grand public - Français

Ca fait quelques temps que je traine avec Jane & Webby (la mascotte d'APIPlatform), deux de mes plus proches copines. Si on s'entends si bien tous les trois, ce n'est pas pour rien, en effet nous sommes tous trois fans de OAS, l'OpenAPI Specification.

Dans l'équipe, chacun sa spécialité ! Webby tente de suivre à la lettre les préceptes de l'OAS pour écrire de beaux documents conformes à la RFC, Jane n'a pas son pareil pour déchiffrer les écrits de l'OAS et en faire de superbes clients et moi... bon moi je ne fais que leur filer un coup de main pour que mes potes s'éclatent et ça me plait !

On a fait les 400 coups ensembles ! J'pourrais vous raconter la fois où on s'est amusé à donner des documentations diférentes à nos connaissances en fonction de nos affinités ! C'était dingue, notre meilleur pote avait accès à tout mais le type bizarre qu'on avait rencontré la veille n'avait presque rien ! :D Oh, y'a aussi la fois où, grand seigneurs, on a décidé d'aider nos copains en leur donnant accès à l'historique complet des opérations qu'ils avaient faites sur notre API ! :D C'était grandiose !!

On forme une équipe, on est soudés, on a peur de rien et si on fait un peu peur parfois, on ne mords pas, promis ! Allez venez, j'vais vous les présenter et vous comprendrez pourquoi ça se passe si bien entre nous. :)

L'open source, ce n'est pas que pour le web

Katherine Johnson 23/10/2020 15:15-15:55 - Niveau : N/A - Français

PHP est open source. L’open source est un modèle de gouvernance pour les logiciels, mais pas seulement les logiciels !

Connaissez-vous l'open hardware ? Savez-vous ce que la NASA partage sur Github ? Vous avez certainement déjà écouté, ou produit de la musique open source, savez-vous qu’il existe des médicaments open source ? Répliquer une information, et la partager devient rapide et émancipateur, le monde se libère un peu plus.

Après une petite plongée dans les principes de partage de l’open source, nous ferons un tour d’horizon des initiatives open source dans d’autres domaines que l’informatique, pour en apprendre un peu plus sur la culture du libre, les rapports de force qui y conduisent, et revenir aux bases du partage.

The new LAMP stack is Serverless

Grace Hopper 23/10/2020 15:15-15:55 - Niveau : N/A - Anglais

AWS Lambda, Amazon API Gateway, MySQL, PHP - it’s LAMP but not as you know it. In this session, I’ll show why there has never been a better time to build serverless applications with PHP.

Using this new LAMP stack to build serverless applications allows PHP developers to benefit from the agility and scalability enabled by the serverless paradigm, all without needing to manage servers. I’ll demo how to get started running your PHP code using functions as a service. You’ll learn how to connect to databases at scale with spiky workloads, and continue to use your favourite libraries and tools, without impacting performance or availability.

Learn how to become a serverless PHP developer, and use the world’s most popular web runtime to build scalable, agile apps without the server management

25 years of PHP

Katherine Johnson 23/10/2020 16:25-17:05 - Niveau : N/A - Anglais

With a very humble beginning and against all odds, PHP rapidly rose to become the most prominent language on the Web, powering a mind-boggling percentage of the servers and some of the key websites we all use every day. In this talk, we will recap some of the main milestones, achievements and misachievements of the last 25 years; What we did right and what we could have probably done a better job at; And at the end, try to take a guess at predicting the future - of the technology, philosophy and structure of the PHP project.

Keep calm and trust your team

Grace Hopper 23/10/2020 16:25-17:05 - Niveau : N/A - Français

Convaincue que l’avenir ne pourra se vivre sereinement que si chacun fait sa part, je veux vous donner envie d’adopter deux ou trois petites (r)évolutions dans votre vie professionnelle.

En partageant avec vous des histoires vraies vécues par les coopérateurs de Fairness, je veux vous convaincre que de petits changements, mis bout à bout et intégrés à notre quotidien ont pu nous permettre d’être plus en accord avec nos valeurs personnelles et d’envisager notre futur avec plus de joie et de sérénité.

À chaque difficulté sa piste pour se sentir plus à sa place : de la qualité du code à la réduction de l’empreinte environnementale du numérique en passant par un travail plus collaboratif ou même une réflexion plus poussée autour des produits que nous développons, j’évoquerai avec vous quels ont été nos choix pour évoluer et trouver du sens dans notre métier.

L'émergence des questions éthiques en informatique

Katherine Johnson 23/10/2020 17:10-17:40 - Niveau : N/A - Français

Si une éthique des sciences biomédicales existe depuis le serment d'Hippocrate, la nécessité d'une réflexion éthique sur les enjeux de l'informatique ne date que d'une décennie ou deux. Pourtant les questions sont nombreuses : du respect de la vie privée à la reconnaissance d'un droit fondamental à une connexion au réseau, de la question de la responsabilité des algorithmes à celle de la justice prédictive, nous essayerons de donner quelques exemples des questions éthique dont il est peut-être important, pour les entreprises, de se saisir, quand l'éthique commence à devenir un avantage concurrentiel.

Keynote de clôture

Katherine Johnson 23/10/2020 17:40-18:00 - Niveau : N/A - Français

On se donne rendez-vous en 2021