By communication

La parole est aux speakers : Charles Desneuf

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Vous n'avez pas besoin de ça !

React, Microservices, GraphQL, REST, DDD... Tous ces buzzwords porteurs de promesses d'un monde meilleur sont sur toutes les lèvres, de toutes les conférences et s'installent petit à petit dans nos projets. Sont-ils vraiment la seule solution à tous nos problèmes ? Au travers de cette conférence à la description taillée pour le SEO nous verrons qu'il existe des alternatives à ces technologies parfois mieux adaptées au contexte dans lequel nous évoluons tous les jours.

Katherine Johnson
25/10/2018
10:15-10:55

Dans une époque où les buzzwords sont légions, ta présentation sera orientée sur le pragmatisme : as-tu des règles que tu te fixes lors d’un choix technologique ?

Avant de faire un choix de techno je pense qu’il est important de bien s’interroger sur le but du projet : connaitre le besoin auquel il répond, savoir qui il sert, quelles sont les différentes contraintes qui l’entourent, quelles sont les qualités nécessaires et celles sur lesquelles on peut se permettre de rogner…

Une fois que l’on en connait un peu plus sur le contexte j’ai tendance à conseiller de sélectionner les outils les plus simples et/ou connus par l’équipe qui permettent de répondre au besoin. Bien sûr rien n’empêche qu’il faille revoir la copie plus tard et rajouter petit à petit d’autres technos avec l’évolution des besoins et une meilleure compréhension de ce qui est attendu du projet.

Il arrive parfois que le contexte prenne en compte des besoins extérieurs au seul scope du projet. Par exemple il peut être intéressant pour une entreprise de commencer à utiliser une techno sur un projet qui ne va pas particulièrement en bénéficier pour pouvoir se faire la main dessus ou permettre d’attirer des nouveaux profils dans l’équipe.

Lire la suite

La parole est aux speakers : Damien Seguy

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Comprendre le fonctionnement de l’analyse statique

L’analyse statique est un domaine en pleine explosion, surtout en PHP. Relire du code à la vitesse de l’ordinateur requiert des outils théoriques puissants : contrôle de flux, dépendance des données, arbre de syntaxe abstraite, graphe de dépendances acycliques !

Si tout cela semble bien loin de PHP, vendez découvrir comment ils fonctionnent en PHP. Ce sont les outils les plus efficaces pour détecter ces mêmes erreurs que l’on retrouve en production, mais bien avant même que le code ne compile. Nous verrons comment ces différentes approches peuvent être exploitées pour construire une analyse de code destinée à traquer les erreurs qui vous gênent le plus.

Grace Hopper
26/10/2018
14:30-15:10

Avant toute chose pourrais-tu nous définir ce qu’est l’analyse statique ?

L’analyse statique, c’est la relecture de code automatisée. Relire son code et celui des autres fait partie des tâches quotidiennes d’une équipe de développement. Avec une relecture formelle de code, on peut éradiquer jusqu’à 70% des bugs.

L’analyse statique effectue un travail systématique sur le code source : elle travaille sans se fatiguer sur des millions de lignes de code. On peut l’appliquer à un commit ou un projet complet. On peut aussi la faire tourner pendant qu’on fait une réunion.

Elle capitalise surtout le savoir-faire de nombreux experts. Un outil comme exakat contient plus de 700 analyses différentes : il y a celles qui sont classiques ou cruciales, celles qui pourront être considérées plus tard, et celles qui nous en apprennent sur nous-même. C’est fascinant.

Lire la suite

La parole est aux speakers : Kevin Dunglas

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Boostez vos applications avec HTTP/2

HTTP/2 permet d’améliorer jusqu’à plus de 50% le temps de chargement des pages web. Saviez-vous qu’il est désormais très facile d’optimiser vos applications PHP et Symfony pour tirer partie de ses fonctionnalités avancées ?

Au programme :

  • une présentation historiquement contextualisée des différentes versions du protocole HTTP ;
  • un état des lieux du support du protocole dans l’écosystème PHP ;
  • un guide présentant comment servir vos applications PHP et Symfony avec h2, en utilisant Nginx, Apache et Docker ;
  • de nombreux exemples de codes montrant comment utiliser HTTP/2 pour améliorer le temps de chargement de vos assets et de vos API grâce à la bibliothèque WebLink, à Twig et à Symfony
  • des exemples expliquant comment tirer parti du protocole via curl puis Guzzle en tant que clients
Katherine Johnson
26/10/2018
16:25-17:05

Ces derniers mois tu as visité plusieurs antennes AFUP pour présenter des sujets dans leurs meetups. Peux-tu nous parler de cette expérience ?

C’est super de rencontrer une communauté aussi dynamique, et présente sur tout le territoire, pas uniquement à Paris.

À chaque fois l’accueil était parfait et les rencontres très enrichissantes. Et puis c’est toujours un plaisir de découvrir la gastronomie et la bistronomie locale !
Les meetups sont de très bonnes occasions pour tester de nouveaux «  »talks » » et se faire la main devant un public sympa et peut-être un peu moins exigeant que sur les gros évènements nationaux.

D’ailleurs, l’AFUP Lille est toujours à la recherche de nouvelles têtes pour ses meetups, avis aux amateurs !

Lire la suite

La parole est aux speakers : Aurélien David

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Maintenir et faire évoluer une API GraphQL

Comment éviter de casser une API pour ses clients ? Comment continuer de la faire évoluer, le tout sans subir une maintenance trop lourde ? La solution n'est pas simple… Reprenons les bases : l'évolution d'une API consiste à s'efforcer de maintenir le corps de la requête / réponse, les paramètres de la requête, ses fonctionnalités générales, en ne les brisant que lorsque cela est absolument nécessaire. Ce concept n'est pas nouveau, mais il faut le dire, GraphQL va bien nous faciliter la tâche. Voyons ensemble comment mettre en place une API GraphQL évolutive, nous apportant plus de flexibilité et de liberté, tout en évitant (en théorie) aux clients d'avoir à migrer leur application vers une nouvelle version complètement différente.

Katherine Johnson
25/10/2018
11:25-12:05

Tu nous parleras d’API GraphQL lors du Forum PHP 2018. Depuis combien de temps avez-vous cette API en production et quelle est l’envergure du projet ?

Avec mon équipe, on a commencé par tester GraphQL en janvier 2016, avec un simple PoC pour exporter des données dans un fichier CSV directement depuis une requête GraphQL… Après avoir expérimenté avec les deux implémentations en PHP youshido-php/GraphQL et webonyx/graphql-php, on a rapidement été convaincu des bénéfices. Nous avons finalement opté pour le bundle Symfony overblog/GraphQLBundle qui se base sur la seconde implémentation. Aujourd’hui cette API GraphQL est consommée par notre frontend en production et permet à toutes les plateformes de Cap Collectif de fonctionner. Que de chemin parcouru !

Depuis plusieurs de nos clients ont envie d’utiliser notre API pour réaliser des intégrations, telles que :

– L’affichage en temps réel du nombre de participants à une consultation;
– Synchroniser l’application d’agenda de la ville avec notre module d’agenda;
– etc…

Il était grand temps pour nous de documenter et d’ouvrir l’accès à ces données ! Ma conférence va traiter des problématiques liées à la sortie de notre API GraphQL publique.

Lire la suite

La parole est aux speakers : Nuno Maduro

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Illuminez les applications de console avec Laravel Zero

C'est toujours sympa d'écrire de petits scripts à utilisations uniques, mais on a parfois besoin de créer une vraie application console, qui prend des arguments et respecte les conventions UNIX pour l'input, l'output et le reporting d'erreurs.

Pour cette présentation, nous utiliserons Laravel Zero, un micro framework qui s'appuie sur une version non officielle et modifiée de Laravel qui donne un point de départ parfait pour votre application console.

Vous y apprendrez les philosophies et idées à la base du framework. Nous aborderons aussi les points les plus importants de Laravel Zero, à savoir l'installation optionnelle d'Eloquent, l'utilisation du scheduler de Laravel ou l'intégration avec Collision.

La présentation incluera une session de live coding de 30m où vous apprendrez à utiliser Laravel Zero pour créer des applications consoles avec des usages réels.

Au terme de la présentation, vous serez capable de développer des applications console à la vitesse de l'éclair. Ces applications peuvent être utilisées pour des tâches récurrentes, par exemple des cronjobs ou des imports. Vous pourrez profiter de Laravel Zero, le micro framework basé sur les composants de Laravel pour utiliser vos fonctionnalités favorites de Laravel et créer des applications consoles élégantes et bien structurées.

Grace Hopper
26/10/2018
16:25-17:05

La communauté Symfony est forte en France. Peux-tu nous dire pourquoi tu as choisi Laravel ?

Peu de temps après avoir terminé mon master, je cherchais en ligne pour en savoir plus sur PHP. Un des premiers sites apparus dans Google était laracasts.com. J’ai particulièrement apprécié Laracasts car ce site vous fait comprendre que les mots comme testing, solid, repositories, ioc, etc, ne sont que des mots. Et tout ce qui était compliqué est devenu si simple.

Laracasts a aussi des leçons sur Laravel, et c’est pour cette raison que je me suis intéressé à ce framework. Je pense aussi que je m’identifie beaucoup aux idéaux de la communauté Laravel, et surtout à l’aide constante et la valorisation de l’expérience des développeurs.

Au fil du temps, j’ai commencé à créer des projets open source et à contribuer au core du framework Laravel. J’ai aussi un package avec le nom collision qui fait partie du framework Laravel.

Lire la suite

La parole est aux speakers : Mikael Paris

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Reprenez le contrôle de PostgreSQL grâce à POMM

Aujourd'hui, lorsque l'on parle des bases de données, nous pensons tout de suite ORM. Le plus célèbre d'entre eux est sans doute Doctrine. Mais à quoi sert l'ORM ? Le but premier de celui-ci est l'abstraction de la base de données. En effet, nul besoin de connaissances en SQL pour persister ou récupérer des données. Celui-ci permet également de changer facilement de SGBDR. Cependant, qui, dans la vie d'un projet, a besoin de ça sans refonte ?

Le constat est qu'aujourd'hui, si bon nombre de développeurs font du Symfony avant de faire du PHP, ils sont encore plus nombreux à faire du Doctrine avant de faire du SQL. Ce qui était, avant, le point de départ d'un projet, est devenu complètement ignoré aujourd'hui.

Nous explorerons les concepts de POMM et son utilisation à travers une application PHP et nous reprendrons le contrôle de PostgreSQL afin d'exploiter la puissance de celui-ci.

Grace Hopper
25/10/2018
11:25-12:05

PostgreSQL a-t-il toujours été ton SGBD de prédilection ? Pourquoi ?

Dans un premier temps, et certainement comme la majorité des personnes qui débutent en PHP, j’ai fait mes armes avec MySQL du fait que la majorité des cours PHP sont réalisés avec ce SGBD avec la fameuse stack LAMP. Par la suite, mon parcours professionnel m’a fait découvrir PostgreSQL. Le changement a été brutal. D’autant plus que le fait de passer de phpMyAdmin à phpPgAdmin a été un choc :). Puis rapidement j’ai pris connaissance des typages, des schémas et des différentes fonctionnalités offertes par PostgreSQL, ce qui l’a rendu pour moi indispensable et ça fait à présent plus de 10 ans que je travaille avec. Actuellement, je ne regrette pas ce choix. En effet, sa robustesse n’est plus à prouver et je trouve vraiment dommage qu’un grand nombre de personnes ignore les fonctionnalités avancées proposées par ce SGBD.

Lire la suite

La parole est aux speakers : Frédéric Descamps

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

MySQL 8.0 : quoi de neuf ?

MySQL 8.0 est la nouvelle version de MySQL. Plein de nouvelles fonctionnalités ont fait leur apparition tel que les Window Functions ou les CTEs. De nouvelles possibilités de LOCK d'enregistrement, des améliorations d'index et beaucoup d'autres changements dans tout les domaines. Durant cette session, le public pourra apprendre quelles sont les améliorations apportées à MySQL 8.0 et comment les utiliser en PHP.

Grace Hopper
26/10/2018
09:30-10:10

Ces derniers temps PostgreSQL gagne de plus en plus en notoriété : quelles sont pour toi les dernières avancée notoires de MySQL ?

Je pense que c’est bien pour l’écosystème des bases de données open source que PosgreSQL soit aussi de la partie. Maintenant au point de vue de la popularité, je ne pense pas que ce soit vraiment une course où MySQL et PostgreSQL ont toutes les cartes en main. Je pense que ce qui fait également la popularité d’une DB open source, ce sont les projets qui utilisent cette DB. Et là, ce n’est pas entièrement de notre (MySQL & PostgreSQL) ressort. Je m’explique un peu: quand Drupal et WordPress sont très populaires et bien MySQL l’est tout autant. Quand Django devient très populaire, et bien PosgreSQL le devient aussi un peu plus. Donc je pense que bien sûr on doit tout faire pour que ces produits continuent à nous utiliser et, nous, à les aider à intégrer nos nouveautés. Le choix de la DB dépend également beaucoup des développeurs de ces frameworks. Et là c’est un peu le discours Emacs ou Vi 😉
PostgreSQL était très connu pour avoir plus de caractéristiques qui font partie du standard SQL et nous (MySQL) pour notre performance, notre convivialité et l’écosystème autour de notre projet. Avec la version 8.0 nous avons comblé pas mal de lacunes sans pour autant avoir mis de côté la performance et l’intégrité des données qui est pour nous (et nos utilisateurs) un point crucial. Avec MySQL 8.0 nous avons par exemple les Window Functions, les CTEs et un très large support de GIS. Et bien entendu la réplication qui fait la force de MySQL depuis bien longtemps a aussi été complétée avec pas mal de nouveautés que vous pourrez découvrir lors de ma présentation.

Lire la suite

La parole est aux speakers : Guillaume Bouyge

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

De 6play.fr à une plate-forme internationale : retour d’expérience

Comment rendre compatible un modèle de données créé il y a 10 ans, qui n’a cessé d’évoluer mais qu’on doit conserver ? Comment traduire une application symfony ? Et côté front ? Comment garder la rétro-compatibilité de nos API et de l’ensemble de nos microservices ? Comment adapter nos back-offices, parfois legacy ? Comment échanger entre équipes, de métiers ou pays différents ?

Ce projet a été l’occasion de remettre à plat une partie de notre architecture, d’en faire évoluer d’autres.

Retour d’expérience sur sept mois de transformation pour passer d’un produit dédié à la France à une plateforme accessible dans quatre pays.

Katherine Johnson
25/10/2018
16:25-17:05

Tu es lead développeur à M6Web. Quel est ton quotidien à ce poste ?

Être lead développeur chez M6Web c’est à la fois gérer une équipe de développeurs, être à l’écoute des équipes produit qui définissent les besoins, savoir y répondre techniquement tout en respectant les budgets et concevoir les solutions.
J’accompagne mon équipe au quotidien dans leur travail. Je leur fournis les explications, l’assistance dont ils ont besoin pour mener à bien les tâches techniques sur lesquelles ils travaillent. Nous travaillons tous ensemble pour faire vivre la plateforme et faire en sorte que cette dernière reste à jour pour absorber la dette technique.
L’agilité nous permet d’avoir une autonomie complète sur la technique. Les product-owners (chef de projets) avec qui je travaille au quotidien l’ont compris et nous font confiance.
C’est un beau mélange entre technique et management qui me permet d’intervenir sur le produit de bout en bout.

Lire la suite

La parole est aux speakers : Matthieu Napoli

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Serverless et PHP

Serverless et ses "functions as a service" nous promet des applications scalables et à bas coût. En réalité à quoi est-ce que ça ressemble vraiment ? Et comment merger l'écosystème PHP mâture avec cette nouvelle architecture et ses outils ? Est-ce qu'on peut y faire tourner des applications HTTP ou CLI ? Est-ce que ça marche avec Symfony, Laravel ou même PSR-15 ? Explorons les réponses à ces questions à travers des études de cas et le projet Bref, solution pour déployer PHP en serverless.

Katherine Johnson
25/10/2018
09:30-10:10

Serverless : pourrais-tu nous décrire succinctement ce nouveau paradigme ?

Serverless est une alternative au format d’hébergement traditionnel où nous payons pour des ressources (un serveur, un disque de stockage…) : dans un hébergement serverless nous payons pour des services. Par exemple un service de stockage de fichier (AWS S3 et similaires), des bases de données «  »as a service » », et bien sûr des hébergements «  »Function as a Service » » pour faire tourner ses applications.
La grosse différence : les services sont à la demande et se payent à l’utilisation. Finie la location d’un serveur 4 CPU et 8 Go de RAM, désormais on se contente de demander à l’hébergeur d’exécuter notre code et celui-ci allouera autant de ressources que nécessaires en fonction de la charge. Les promesses sont donc celles de scalabilité extrême et de coûts réduits. En effet, plus besoin de payer des gros serveurs à se tourner les pouces pendant les creux, et plus de problèmes de serveurs saturés pendant les pics. L’hébergeur se débrouille.
En tout cas c’est la théorie, et dans la pratique cela demande de revoir un petit peu l’architecture de nos applications. L’avantage c’est que PHP a une longueur d’avance sur le sujet !

Lire la suite

La parole est aux speakers : Benoit Viguier

Jusqu’au Forum PHP 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

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

Les générateurs sont souvent réduits à une simplification des itérateurs, mais ils sont surtout très pratiques et performants pour executer des traitements asynchrones. Nous aborderons le fonctionnement d’un programme asynchrone, le rôle des promises, et approfondirons l'utilisation des générateurs pour simplifier l’écriture de notre code. Enfin nous détaillerons des cas pratiques « prêts à l’emploi » pour tout type d’application, avec un retour d’expérience sur ce qui a été mis en place chez M6Web.

Katherine Johnson
26/10/2018
11:25-12:05

Comment en es-tu venu à utiliser les générateurs pour faire de la programmation asynchrone ?

Dans le cadre d’un nouveau projet chez M6Web, j’ai étudié quelques solutions techniques pour faciliter la mise en place de traitements asynchrones en PHP. Je suis rapidement tombé sur le framework Amp qui utilise les générateurs pour simplifier l’utilisation des Promises et ainsi éviter l’enfer des Callbacks. Pour moi ça a été un déclic car les générateurs sont une spécialisation des Coroutines, ils sont vraiment faits pour ça, il ne s’agit pas du tout d’un détournement maladroit d’une fonctionnalité de PHP. Ce mécanisme, déjà bien connu dans d’autres langages, permet d’interrompre l’exécution d’une fonction et de le reprendre plus tard : c’est le cœur de la programmation asynchrone. La documentation MDN des générateurs nous apprend d’ailleurs que les fonctions async de Javascript sont construites sur un modèle identique aux générateurs, exactement pour les mêmes raisons. En général, tous ceux qui ont travaillé un peu avec les Promises Thenable sont rapidement conquis par les avantages des générateurs pour la programmation asynchrone.

Lire la suite