[:fr]La parole est aux speakers : Mikael Paris[:]

[:fr]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.

(suite…)

[:fr]La parole est aux speakers : Frédéric Descamps[:]

[:fr]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.

(suite…)

[:fr]La parole est aux speakers : Guillaume Bouyge[:]

[:fr]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.

(suite…)

[:fr]La parole est aux speakers : Matthieu Napoli[:]

[:fr]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 !

(suite…)

[:fr]La parole est aux speakers : Benoit Viguier[:]

[:fr]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.

(suite…)

[:fr]La parole est aux speakers : Baptiste Langlade[:]

[:fr]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

Le temps: la dépendance oubliée

Il y a 2 pratiques qui sont maintenant bien ancrées dans la plupart des projets : l'injection de dépendance et ne pas utiliser d'état global. L'objectif est de produire un code plus maintenable, testable et prédictible. Pourtant l'utilisation de l'api du temps en PHP enfreint ces 2 pratiques, il est donc temps d'adopter le pattern de l'horloge.

Grace Hopper
25/10/2018
12:10-12:30

Injecter la dépendance temps : est-ce un concept difficile à vendre à une équipe de développement ?

Comme souvent la réponse est : ça dépend ! Ça dépend du domaine d’activité et de la maturité de l’équipe. Si le métier adressé n’est pas du tout sensible au temps, les gens vont avoir du mal à voir la plus-value de changer une façon de faire qui fonctionne bien (ce qui est compréhensible). En revanche dans le cas où le temps est une part importante du métier ça va dépendre de l’expérience cumulée de l’équipe. Si elle a souffert de bugs en prod ou de débuggage il sera plus facile de vendre le concept. Dans le cas contraire l’équipe ne verra pas non plus l’intérêt de changer une façon de faire qui ne l’a pas gênée jusqu’ici.

(suite…)

[:fr]La parole est aux speakers : Stéphane Hulard[:]

[:fr]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

Symfony/Messenger un composant à votre service !

Avec la sortie de Symfony 4.1 le 30 mai 2018, un nouveau composant officiel fait son entrée sur le marché : Messenger. Il s'agit d'une abstraction autour des files d'attente de message. Ce nouveau composant ouvre la porte à une nouvelle façon de travailler car les traitements asynchrones et la consommation des messages sont maintenant supportés nativement par Symfony.

Qu'est-ce que ça change ? Pourquoi un nouveau composant officiel ? Comment l'intégrer dans un projet ? Quels sont les connecteurs supportés ? Quels bénéfices dans la structure du code ?

Nous avons choisi de faire confiance à ce jeune composant et je vous invite à suivre nos pas à travers les exemples réels de notre implémentation.

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

Comment le composant symfony/messenger se situe-t-il par rapport à des initiatives comme queue-interop ?

C’est justement un des sujets que je vais aborder pendant la conférence. Le nouveau composant est sorti en compagnie d’un d’adapteur pour facilement s’interfacer avec les initiatives existantes. Pour être plus précis, je m’appuie sur le projet « php-enqueue” pour avoir accès à différents drivers (Redis, Kafka, SQS, …). Ce projet est une implémentation de « queue-interop ».

Pour autant ce n’est pas du tout obligatoire, Messenger est une brique donnant accès à la logique de bus de message. Libre à chacun ensuite d’utiliser les meilleurs outils pour les consommer !

(suite…)

[:fr]La parole est aux speakers : Vladyslav Riabchenko[:]

[:fr]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

SOLID : Les principes à l’origine du succès de Symfony et de vos applications

SOLID est un acronyme représentant cinq principes de bases de la programmation orientée objet permettant le développement de logiciels fiables, évolutifs et robustes. Le framework Symfony est un excellent support pour illustrer chacun de ces principes. Nous verrons ainsi que SOLID est à l’origine de sa flexibilité, sa fiabilité mais aussi de sa maintenabilité et son évolutivité. Nous verrons également comment appliquer ces principes pour améliorer son code métier et perfectionner l’architecture de son application.

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

Les principes SOLID sont-ils utilisables en entreprise ou est-ce une simple théorie ?

Lorsqu’on utilise le langage orienté objet tel que PHP on essaie de rester toujours en conformité avec SOLID. C’est d’autant plus visible quand il s’agit d’une bibliothèque réutilisable, d’un framework ou d’une logique métiers complexe.

Les principes SOLID aussi bien que les design patterns (e.g. ceux de GoF) sont issus de la pratique. Ils ont été extraits de l’expérience de création de milliers d’applications pour résumer les règles générales de bonne architecture. Dans le quotidien d’un développeur, SOLID favorise la création de modules réutilisables, flexibles, évolutifs et compréhensibles.

(suite…)

[:fr]La parole est aux speakers : Samuel Roze[:]

[:fr]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

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

Il arrive parfois que nous, développeurs, pensions qu’il n’est pas nécessaire de connaître ce qu’ils appellent les « design patterns » ou « patrons de conception ». Nous pensons parfois que nous n’avons pas besoin de cette théorie. Après des années d’expériences avec la faible maintenabilité de mon propre code et de celui de mes clients, j’ai exploré de nombreuses façons de découpler nos applications afin de créer des applications « enterprise ready » qui peuvent vivre pendant de nombreuses années. Via des exemples concrets, je vais vous présenter quelques design patterns qui peuvent vous aider à travailler sur une codebase propre, structurée et bien découplée.

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

Quels sont tes 3 design pattern préférés ?

Je dirais que cela dépend du contexte. Je n’ai pas de design pattern préféré, car ce sont juste des outils que j’utilise en fonction du cas d’utilisation plutôt qu’une liste de designs préférés. Ceci dit, celui que j’utilise le plus c’est le « Décorateur » que je trouve extrêmement puissant et très utile pour ajouter des fonctionnalités à un existant très simple. Typiquement sur une fonctionnalité de « retry » ou de logging: on pourrait l’ajouter à l’aide d’une boucle dans le code existant ou une ligne de code à de l’existant. C’est l’approche la plus simple mais elle n’est clairement pas réutilisable. À la place, on crée un décorateur qui permettrait d’avoir une fonctionnalité « plug-and-play », bien découplée et réutilisable.

(suite…)

[:fr]La parole est aux speakers : Arnaud Langlade[:]

[:fr]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

Quelle différence y a-t-il entre le bon et le mauvais repository ?

Qu’est ce qu’un repository? Le pattern repository est l’un des pattern les plus utilisés dans nos applications. Bien que simple et pratique il est trop fréquemment mal employé : nos repositories sont plus souvent des entrepôts de requêtes SQL que des “vrais” repositories. Durant ce talk, nous verrons comment désigner un repository et gérer nos requêtes SQL.

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

Tu nous parleras de repository : avant toute chose, pourrais-tu nous définir ce qu’est un repository ?

Un repository se comporte comme une collection d’objets : on peut lui ajouter, récupérer et parfois supprimer des objets. Il ne fonctionne qu’avec des objets du même type car on ne mélange pas des galinettes avec des renards, ça ne fait pas bon ménage ! Il a l’avantage de proposer aux développeurs une couche d’abstraction qui permet de ne plus se soucier de la persistance. En effet, il peut être implémenté de plusieurs façons possibles, il pourra très bien persister vos objets dans un fichier texte ou dans une base de données par exemple.

(suite…)