[:fr]La parole est aux speakers : Kévin Dunglas[:]

Publié le

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

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.

Une conférence présentée par

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

[:]