Les 25 et 26 octobre derniers se tenait le Forum PHP 2018 à Paris.
Voici un résumé par nos équipes de ces deux jours intenses !

Tout comme l’année précédente, Geoffrey Bachelet, actuel président de l’Association Française des Utilisateurs de PHP (AFUP), présente la keynote d’ouverture, la roadmap du Forum PHP et les différentes conférences.

“Serverless et PHP”

Matthieu Napoli nous parle de PHP et de Serverless. Serverless est aussi appelé function-as-a-service platform. L’avantage de ces platesformes est que les développeurs n’ont pas à penser au multi-threading ni à l’équilibrage de charge. Ils peuvent simplement se concentrer sur leur code. Ils font confiance au FaaS pour gérer toute la gestion de leurs ressources. Il s’avère également être beaucoup moins cher que de se voir facturer une quantité fixe de serveurs. Il précise que l’on code effectivement des fonctions et non plus de l’applicatif. Matthieu Napoli appuie sur le fait que le grand intérêt de Serverless réside dans le paiement à la consommation. Contrairement à l’utilisation d’une application classique où l’on paie le serveur, que l’on consomme la ressource ou non.

Sur Amazon Web Services, le serverless est en partie représentée par le micro-service Lambda et il n’est nativement pas possible d’utiliser le langage PHP.

Matthieu Napoli présente alors son framework “Bref” qui permet de faire tourner du PHP en Serverless. En commentant quatre lignes de codes et en remplaçant simplement quatre lignes dans le Kernel, il est alors possible de faire tourner le framework Symfony en Serverless. Il est nécessaire de prendre en compte un Overhead sur chaque exécution de fonction (cela dure environ 21 millisecondes) ainsi qu’un Cold Start (environ 210 millisecondes) avant de choisir si le serverless est une bonne solution ou non pour son application PHP.
Une contrainte majeure à prendre en compte et qui ne permet pas à tous les projets PHP d’utiliser le Serverless de façon systématique. En effet, tous ne peuvent pas se permettre ce temps supplémentaires dans leurs exécutions.

Deux projets sont déjà en production avec le Severless PHP : Returntrue.win et prettyCI.com

“Comment j’ai commencé à aimer ce qu’ils appellent « design pattern »”

Samuel Rozé de Birdie nous présente les avantages des design pattern et les principales problématiques auxquelles ils répondent.

Nous retenons l’un des aspects principaux des design pattern : avoir un code réutilisable, maintenable et une lisibilité améliorée.

Après avoir présenté trois design pattern (Adapter, Event Dispatcher et Decorator) et listé leurs points forts, Samuel Rozé continue avec un petit rappel sur leur bonne pratique. Même si leur utilisation peut s’avérer attrayante, il apparaît primordial de s’en servir dans un contexte précis afin de ne pas perdre de vue l’objectif principal, à savoir la propagation des données.

En terminant avec cette phrase, Samuel Rozé résume très bien l’utilisation des design pattern :
“Les Design Pattern nous aident à permettre le changement dans notre code.”

“Vous n’avez pas besoin de ça”

En amorçant sa présentation par la question “Adorons-nous la complexité ?”, Charles Desneuf donne tout de suite le ton de la conférence. Ici, ce dernier met en lumière une problématique récurrente : l’utilisation d’outils inadaptés aux projets, ce qui engendre une complication évitable.
Charles Desneuf rappelle que l’aboutissement d’un développement est d’apporter des solutions qui répondent aux réels problèmes des utilisateurs, puis il aborde les différentes complexités d’un projet, qui peuvent être de 3 ordres :

  • Accidentelle
  • Obligatoire
  • Essentielle

 
Ajouter des outils qui ne répondent pas aux besoins de notre projet peut constituer un frein à sa bonne réalisation : en y prêtant plus d’attention, la complexité accidentelle peut ainsi être évitée.

Après avoir expliqué le principe du « Keep It Simple Stupid », Charles Desneuf poursuit sa conférence en expliquant la nuance entre « simple » et « facile », avant de conclure sur une déclinaison du titre de sa présentation :

“Vous n’avez (peut-être) pas besoin de ça (maintenant).”

“Maintenir et faire évoluer une API GraphQL”

Aurélien David de Cap Collectif expose la difficulté que représente l’évolution d’une API.


 
Il y répond avec le principe d’évolution continue qui consiste à modifier son API de façon progressive, en s’appuyant sur les exemples de Facebook et de Github, deux piliers dans ce milieu.

De plus, le fait de communiquer et d’échanger avec ses utilisateurs sur les modifications de son API est également un point à ne pas négliger, surtout lors de dépréciations.
Bien que utopique, la clef réside dans le contournement des changements bloquants, solutionnés en établissant une liste de tous les schémas, ce qui permet ensuite d’analyser les statistiques d’utilisation avant une éventuelle suppression.

Aurélien David termine sa présentation en affirmant que déprécier est difficile mais nécessaire à l’amélioration.

“Bash pour les développeurs et développeuses PHP”

David Buchmann, lead développeur chez Liip SA, introduit un langage (trop peu) utilisé par les développeur·euse·s du web.

Que l’on veuille l’utiliser pour des scripts de déploiement ou pour une exécution rapide de tâches redondantes, le bash est un langage disponible sous UNIX qui permet de simplifier nombre d’actions (notamment pour de l’automatisation).
Même si ce langage présente des limites lors de traitements trop complexes, il présente le site explainshell.com afin de simplifier la compréhension de diverses commandes.

“Symfony 4 : Une nouvelle expérience de développement”

Titouan Galopin, Product Manager chez Symfony, présente les nouvelles fonctionnalités de Symfony 4, auxquelles s’additionne une amélioration globale du fameux framework.

Tout d’abord, Symfony Flex est le nouvel ensemble d’instructions automatisées destiné à installer des packages de fournisseurs tiers. En une commande, l’outil permet d’installer des dépendances de toutes sortes, allant d’un package de debug (composer req symfony/debug-pack) à une interface administrateur (composer req admin).

Titouan Galopin introduit également une nouveauté qui ravira les travailleurs du front end, à savoir la librairie JS « Webpack Encore », qui offre une utilisation simplifiée du fameux bundler dont l’accessibilité n’est pas évidente pour les nouveaux utilisateurs.

La grande innovation du Symfony 4 reste tout de même l’injection de dépendance, le composant qui a le plus évolué avec les versions 3.4/4.0. Désormais, un graphe présente les difficultés rencontrées en vue de traiter les différents problèmes. D’ailleurs, le fichier « services.yml » n’est plus utilisé, au même titre qu’une majorité de « .yml » et ce, grâce à l’Autodiscovery couplé à l’Autowiring. D’une certaine manière, les services seront intégrés dans l’action d’un controler au moyen de « tags ».

Encore un beau chemin plein d’améliorations parcourue par SensioLabs !

“Comment fonctionne la cryptographie ?”

A travers cette conférence assez théorique, Julien Pauli, Architecte Système et Web au sein de SensioLabs, dévoile la base commune qui relie chaque processus cryptographique informatique.

Après avoir posé les bases de sa présentation en introduisant le Chiffre de Vernam, Julien Pauli affirme que le chiffrement est omniprésent, même si son principe reste toujours le même.

Une explication des pré-requis, des problématiques liées à ce système et des solutions apportées au fil du temps sont les sujets abordés lors de cette conférence, très enrichissante quant au fonctionnement actuel des nombreux chiffrements qui nous accompagne quotidiennement.

“Sécurité, Bug Bounty et PHP”

La dernière conférence est présentée par Xavier Leune, ancien président de l’AFUP et CTO adjoint de CCM Benchmark.

En passant en revue les différentes failles curl, Xavier Leune souligne le manque de sécurité qui caractérise l’écosystème PHP ainsi que les connaissances des développeurs PHP qui, en terme de prévention dans ce secteur, demeurent encore floues.

Après avoir fourni plus d’explications sur le principe des bugs bounty et de leurs apports pour les entreprises, Xavier Leune conclut en affirmant qu’il faut “mettre son orgueil de côté et faire appel à des personnes compétentes”.

“MySQL 8.0 : quoi de neuf ?”

La seconde journée débute par une présentation des dernières nouveautés de la version 8.0 de MySQL à travers une conférence menée par Olivier Dasini, MySQL Principal Solutions Architect EMEA chez Oracle.

D’emblée, Olivier Dasini valorise l’importance de MySQL dans le secteur du développement web : son utilisation par tout type d’entreprise et d’individu en a fait le langage de base de données le plus utilisé au monde.

Parmi les nouveautés de cette version figure notamment une intégration poussée de la gestion du JSON en tant que donnée, avec la possibilité d’utiliser des fonctions SQL sur les données JSON.

Il sera désormais possible de parcourir les tableaux JSON avec des fonctions natives SQL dans le but de créer des tables virtuelles associées. En plus de pouvoir indexer ces données, une implémentation d’un mode hybride en API offrira davantage de libertés dans la construction de sites web.

“Docker en prod ? Oui, avec Kubernetes !”

Pascal Martin, Ingénieur DevOps au sein du groupe M6, nous fait part d’une étude de cas concernant le passage de l’application 6play d’un hébergement classique vers un hébergement cloud, composé de Docker ainsi que de la plateforme d’orchestration de containers open source créée par Google : Kubernetes.

Le Groupe M6 a constaté que l’application n’était utilisée que le soir et que le paiement d’un hébergement complet pour une disponibilité constante devenait un manque à gagner. Grâce à ce nouveau type d’hébergement composé de Docker et de Kubernetes, M6 peut désormais allouer des machines en fonction du nombre de visiteurs selon les heures de la journée et ainsi moduler les coûts d’hébergement.

“Générateurs et Programmation Asynchrone: Mode d’emploi”

Benoît Viguier, Lead Développeur Backend chez M6Web, affirme que le PHP peut tout à fait servir à la programmation asynchrone au même titre que le Javascript. D’ailleurs, cela est possible nativement et dans ce cas de figure, il n’y a pas besoin de recourir à des outils externes tels que des librairies : tout passe alors par le concept des “Generator”.

Un générateur est souvent présenté comme une simplification d’un itérateur, mais il est surtout un outil très performant pour exécuter des traitements asynchrones.

“We got rid of management: We love it!”

Membre de l’équipe de Liip, située à Zurich, Michelle Sanver présente une méthode de management peu commune dont son entreprise est adepte.
Tout d’abord, elle affirme que le management en structure pyramidale est dépassé et que l’équipe de Liip applique l’holacratie ; c’est une méthode de management basée sur la transparence et sur l’attribution autonome des rôles dans une entreprise.

Ce système ne prend que très peu en compte la notion de “position” : en effet, tout le monde se situe plus ou moins au même niveau, dans une vision qui s’apparente à un réseau de nœuds. Chaque employé possède plusieurs rôles qu’il s’attribue lui-même via une plateforme interne disponible sur son lieu de travail ; cette action lui fait donc intégrer des nœuds, qui se lient entre eux par la suite.

La démocratie est également au centre du système car les décisions sont régies par des votes, ce qui implique une connaissance du fonctionnement de l’entreprise en toute transparence.

“De la page au composant, partage de réflexion autour du front avec Radio France”

Jean-François Mougnot, product owner chez Radio France, nous fait part de son expérience personnelle concernant l’amélioration globale du site. A son arrivée en 2015, le site radiofrance.fr était obsolète et non fonctionnel. Afin de résoudre cette problématique, Jean-François s’est servi du modèle de la Pyramide de Maslow dans le but de dresser les différents besoins à combler.
Le constat était le suivant : le besoin fondamental d’un site est d’être fonctionnel, mais cet enjeu n’était pas suffisamment pris en compte à cette époque, ce qui a entraîné un blocage, empêchant ainsi de répondre aux autres besoins présents au sein de cette pyramide.

Résultat des courses : Radio France a entamé une refonte de l’application web durant un an, ce qui a boosté la croissance de son site d’environ 123%!

“Boostez vos applications avec HTTP/2”

Le forum PHP se clôture par la conférence de Kévin Dunglas, fondateur de la société autogérée Les-Tilleuls.coop et membre de la core-team Symfony, qui aborde la nouvelle version du protocole HTTP (dérivé de SPDY, originalement développé par Google).

Kévin Dunglas constate que même si l’informatique évolue très vite, l’HTTP n’a jamais changé depuis la version 1.1 (elle date de 20 ans !) jusqu’à ce que Google vienne s’y intéresser.
On apprend ensuite que la version 2.0 est supportée par tous les navigateurs récents, mais que même si Kévin Dunglas encourage les utilisateurs à passer sur cette version, elle nécessite obligatoirement d’utiliser l’HTTPS sur son site, ce qui peut s’avérer contraignant.

Dans le même élan, Les-Tilleuls.coop ont développé un nouveau protocole qui permet de transmettre en temps réel des mises à jour de données vers les navigateurs web de manière fiable et rapide : Mercure.

En plus de supporter le chiffrement et de fonctionner avec les vieux navigateurs en utilisant un polyfill (IE7+), Mercure s’avère être très pratique pour publier les mises à jour en temps réel des ressources exposées via des API Web.

Exemple : le serveur d’une plateforme E-Commerce affiche qu’il n’y a plus de stocks. Dans la foulée, le protocole va envoyer l’information aux navigateurs et il va mettre à jour la page sans rechargement ni action du visiteur.

Publié en tant qu’Internet Draft, Mercure est maintenu dans un dépôt GitHub qui contient également :

  • Une implémentation de référence du hub Mercure (le serveur),
  • Une implémentation écrite en Go et publiée sous licence libre (AGPL),
  • Une bibliothèque Go,
  • Une image officielle Docker

 
Parfaitement adapté aux abonnements GraphQL, trois versions de Mercure sont actuellement disponibles : une version disponible sous forme de Component officiel Symfony, une version Open Source et une version dite de “Haute Disponibilité” en bêta privée (hébergée ou on promise).

Envie de tester ? Jetez un oeil à la démo !

Conclusion

L’édition 2018 du Forum PHP a su proposer des thèmes et des sujets toujours aussi intéressants et permet à sa communauté de se réunir pour partager des connaissances toujours plus vastes.

Un grand merci à l’AFUP pour cette organisation et ce partage d’une vision du monde du développement web.

Vous avez aimé ?

0