AFUP AFUP Day 2019 Baromètre Planète PHP

La parole est aux speakers : Kévin Dunglas

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

La conférence

Développer plus rapidement avec Symfony 4

Symfony est un framework universellement reconnu pour sa qualité, sa fiabilité et sa capacité à propulser les gros projets "entreprise". Mais depuis quelques années, Symfony s'est également doté de nombreuses fonctionnalités permettant de développer toujours plus rapidement des applications web. Symfony 4 propose des améliorations majeures dans ce domaine grâce à une refonte profonde de la configuration par défaut du framework qui va changer profondément la manière dont nous développons des applications. Au cours de cette présentation, j'aborderai :

  • Les grands concepts et les nouveautés de Symfony 4: micro-framework par défaut, 12-factor app, nouveaux composants...
  • Flex, le nouvel installateur surpuissant de Symfony qui peut également installer et configurer automatiquement bibliothèques et bundles 
  • La nouvelle structure de répertoire simplifiée (et sans bundle) de Symfony 4
  • L'autowiring (qui est désormais activé par défaut), qui permet l'injection automatique des dépendances sans avoir à écrire aucune configuration (fini le YAML et le XML)
  • Le système de contrôleurs, amélioré et assaini
  • "Encore", le nouveau système de gestion des assets (JS, CSS) basé sur Webpack
  • Les intégrations officielles des bibliothèques Doctrine (ORM), API Platform (API Rest) et EasyAdmin (générateur d'admin)
  • Comment utiliser facilement Symfony 4 avec Docker du poste de dev jusqu'au déploiement dans le Cloud, grâce à un squelette dédié A la fin de ce talk, vous saurez comment utiliser Symfony aussi bien pour vos gros projets que pour vos prototypes, vos petites applications et vos "week-end projects", tout en vous permettant de basculer d'un mode à l'autre.
Salle Katherine Johnson
26/10/2017
16:25-17:05

Tu va nous parler de la version 4 de Symfony et tu es membre de la Core Team. Quel a été ton rôle dans cette release ?

Symfony 4 – qui sortira courant novembre – va changer de manière profonde la manière de développer des applications.

L’objectif assumé pour cette version est de simplifier la prise en main du framework ainsi que d’accélérer le processus de développement ; mais sans transiger avec ce qui a fait la réputation de Symfony : extensibilité, modularité et fiabilité.

Pour se faire, énormément de nouvelles fonctionnalités ont été introduites, les plus notables sont :
Symfony Flex : un nouvel installateur pour les composants Symfony, les bundles et les bibliothèques PHP qui permet de partir d’une structure légère de type micro-framework et d’ajouter sans effort des briques fonctionnelles avancées tel qu’un ORM, un système de gestions des logs, une interface d’administration ou encore une API.
L’amélioration du mécanisme d’injection de dépendances et l’activation du mode « autowiring » par défaut, qui permet de ne plus avoir à écrire de configuration et de « refactorer » facilement les applications.
Une approche « Cloud Native » qui va de paire avec un retour aux sources d’Unix (configuration par variables d’environnement, logs écrits directement sur stderr…). Résultat : une bien meilleure intégration avec Docker, Kubernetes et les plateformes du type Google Container Engine, SensioCloud ou encore Heroku.
L’apparition de Symfony Encore, le premier composant écrit en JavaScript de Symfony, qui permet de très facilement intégrer NPM/Yarn, Webpack ou encore React dans un projet.
Une comptabilité plus importante avec HTTP/2 (composant Weblink).

Malgré toutes ces nouveautés, la rétro-compatibilité avec les versions précédentes du framework reste au coeur de nos préoccupations. Il est donc possible de migrer aisément une application Symfony 3 vers Symfony 4, ainsi une application qui fonctionne sans erreur d’obsolescence avec Symfony 3.4 fonctionnera également avec Symfony 4.0.

Le travail sur cette version a été titanesque. C’est le fruit de contributions de plusieurs centaines de développeurs. Le rôle de la Core Team est surtout de relire et de merger ces contributions.
Pour ma part, j’ai surtout travaillé sur la partie simplification de l’expérience développeur et la compatibilité avec Docker.
Ceux qui ont assisté à ma présentation au Forum PHP de l’an dernier devraient avoir une impression de déjà vu : les outils et façons de faire que j’avais présentés ont depuis été intégrés directement dans le core de Symfony et seront activés par défaut dans Symfony 4.

Le projet API Platform, dont tu es le créateur, a maintenant 2 ans. Quelle est ta vision pour l’avenir de ce projet ?

L’objectif est de faire de API Platform une solution à la fois puissante et très simple à prendre en main pour créer des API en PHP et des webapps qui les consomment en JavaScript.
Ce qui n’était au départ qu’un petit bundle Symfony (présenté en 2015 au Forum PHP) est désormais un framework « full-stack » nouvelle génération : API-first, découplé et reposant sur les standards du web.

Avec API Platform, il suffit de décrire la structure des données à exposer sous la forme de simples classes PHP pour :
– exposer une API fonctionnelle (lecture, écriture, relations, pagination, filtres, tris, validation, gestion des droits des utilisateurs, imbrication de documents…) supportant automatiquement les dernières générations de formats tels que JSON-LD, GraphQL ou encore JSONAPI
– obtenir une documentation complète au format Swagger/OpenAPI ou Hydra et de la visualiser depuis une interface utilisateur facile à prendre en main
– générer des squelettes d’applications clientes web et mobiles (React/Redux, React Native, Vue.js et Angular sont désormais supportés)
– bénéficier d’une interface d’admin dynamique suivant la philosophie Material Design (basé sur Admin On Rest, un projet de François Zaninotto, qui parlera également au Forum PHP de cette année)
– déployer dans les plateformes Cloud via Docker et Kubernetes

Grâce aux standards Hydra et JSON-LD, les outils serveurs et les outils clients sont complètements découplés et indépendants (l’API fonctionne avec n’importe quelle technologie côté client, les outils clients fonctionnent avec n’importe quelle API supportant Hydra).

De plus, le fait de s’appuyer sur des fondations solides et populaires (Symfony côté serveur, les frameworks cités précédemment et React en particulier côté client, Docker pour l’industrialisation), permet de pouvoir très facilement spécialiser, surcharger et personnaliser la solution, ainsi que de capitaliser sur la grande quantité de ressources déjà existantes dans ces écosystèmes (bibliothèques, documentations, supports de formation…).

Ce qui est assez impressionnant, c’est que la communauté autour du projet ne cesse de croître : nous avons à ce jour une centaine de contributeurs, une « Core Team » de 9 personnes venant de pays aussi divers que la Malaisie, la Pologne ou la France, nous approchons les 2000 étoiles sur GitHub et des talks sont déjà donnés un peu partout dans le monde à ce sujet.

De nombreux grands comptes ont déjà adopté le framework (LVMH, Décathlon, Adeo, Renault, BNP Paribas…) et il sert de base à des projets open source extrêmement novateurs tel que CoopCycle, une plateforme permettant aux livreurs à vélos de s’auto-organiser sous forme de coopératives plutôt que d’être dépendants de multinationales comme Deliveroo ou Foodora.
L’intégration native dans Symfony 4 (`composer require api`) devrait encore simplifier l’adoption de l’outil dans la communauté PHP.

A quelles conférences penses tu assister pendant l’événement ?

Comme tous les ans, le programme est d’excellente facture. L’AFUP a encore une fois fait un énorme boulot, et c’est une très bonne nouvelle que le nombre de femmes conférencières soit bien plus important que l’an dernier.
Tout ça pour dire que ça va être dur de faire des choix. Je vais essayer de voir un maximum de présentations, et étant donné que l’on sera beaucoup de Les-Tilleuls.coop, on se répartira les talks afin d’avoir une vision globale du forum.

Tu es un habitué du Forum PHP. Quels conseils donnerais-tu à un nouveau speaker ?

Ne prépare pas tes slides avant la veille, ne te couche pas avant 3h du matin, bois au moins 5 bières belges.

Le speaker

Kévin Dunglas
Kévin Dunglas
Kévin est le fondateur de la société autogérée Les-Tilleuls.coop. Il est membre de la core-team Symfony et a créé le framework API Platform. Il est également contributeur à plus d'une centaine de projets Open Source, conférencier et rédacteur d'articles et livres techniques.

Autres interviews

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :