The French SymfonyLive conference organized by SensioLabs will take place from March 30th to 31st in Paris.

Thursday 30th March 2017

09:15
12
Symfony 4
Keynote by Fabien Potencier in Track A

Symfony 4 sortira en décembre 2017. Aucune surprise d'un point de vue fonctionnel puisque toutes les nouvelles fonctionnalités seront disponibles dans les versions 3 successives (dont la 3.4 qui sortira en même temps). Quoi de neuf du coup ? Grâce à Symfony Flex, la façon de développer des applications va changer.

10:00 A la découverte du composant Serializer in Track A (1 hour)

Le composant Serializer de Symfony existe depuis la première version de Symfony 2, mais a gagné énormément de fonctionnalités ces derniers temps. Au cours de cet talk, je présenterai les fonctionnalités méconnues et pourtant très puissantes de cette bibliothèque. Après un rappel des fondamentaux, nous découvrirons comment le composant permet - de manière transparente - de manipuler tous types d'objets PHP, quelques soient leurs styles : getters / setters, propriétés publiques, proxys.... Nous verrons ensuite les différents formats supportés nativement : JSON, XML, YAML et CSV. Puis nous manipulerons des dates, et évoquerons l'upload de fichiers avec le support des "data: URI". Finalement, nous aborderons quelques cas plus complexes tels que choisir les propriétés à sérialiser / désérialiser grâce aux groupes, gérer les références circulaires, sérialiser des arbres en limitant leur profondeur et mettre à jour des objets déjà existants.

11:10 Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Talk by Jérémy Derussé in Track A (1 hour)

Le moyen le plus rapide d'obtenir une réponse d'un Backend est de ne pas l'appeler ;-) Une solution fournie par les "reverse-proxy" me direz-vous, mais pas si simple d'invalider le cache... Ce talk aborde une fonctionnalité méconnue de Varnish: les tags. Nous verrons comment en tirer partie via les "event listeners" d'une application Symfony standard. Au menu, un cluster de Rasberry Pi, une API, et des données toujours fraîches sous la milliseconde.

11:55 JWT - Sécurisez vos APIs
Talk by André Tapia in Track A (40 minutes)

Les web-services sont aujourd'hui au centre des SI de nos entreprises. Ils permettent de transmettre l'information entre des systèmes hétérogènes, à la fois au sein de l’entreprise mais également à l'extérieur, notamment et de plus en plus vers des systèmes mobiles. Or exposer cette information, potentiellement critique, pose la question de la sécurisation de ces échanges. Cette présentation sera l'occasion de présenter JWT, d'expliquer son fonctionnement et son implémentation au sein d'un projet Symfony 3.

14:30
9
Micro-Services Symfony chez Meetic : retour d’expérience après 2 ans de refonte !
Talk by Etienne Broutin in Track A

Eté 2015, nous décidons de changer notre stratégie d’architecture en découpant encore plus finement notre nouvelle API monolithique en micro-services Symfony et faisons le choix fort d’effectuer cette refonte en continu, en parallèle des initiatives métiers. Presque 2 ans plus tard, nous souhaitons aujourd’hui revenir sur nos choix techniques avec du recul, vous partager les inquiétudes que nous avions en début de projet et voir si elles sont avérées justes ainsi que vous faire découvrir les surprises que nous avons eues en cours de route ! Nous profiterons de ce vrai retour d’expérience pour aller plus loin que les succès et échecs, en rentrant dans le détail sur de nombreux aspects : de la stratégie de base de données à l’industrialisation d’une architecture µServices en passant par l’implémentation dans Symfony, le monitoring, la performance ou les impacts sur les équipes. Vous saurez tout ce que nous avons appris après 2 ans de refonte et notre dernier talk au SF Live en 2015 !

15:15 Utiliser Webpack dans une application Symfony
Talk by Alain Hippolyte in Track A (1 hour)

Depuis la version 2.8 de Symfony, Assetic le gestionnaire d'assets PHP n'est plus inclus par défaut dans la Standard Edition. Du coup, se pose la question, faut-il encore l'utiliser ? Quels sont les alternatives qui s'offrent à nous ? Au cours de cette présentation, je vous présenterai l'outil Webpack, qui permet de packager nos assets via une configuration. Étape par étape, nous verrons comment migrer une application Symfony utilisant Assetic vers une application Symfony avec Webpack, du dev à la production.

16:25 Introduction to CQRS and Event Sourcing
Talk by Samuel ROZE in Track A (1 hour)

Command Query Responsibility Segregation et Event Sourcing sont des principes en vogue mais souvent très peu compris. Après avoir présenté cette architecture qui consiste à ne s'occuper que des événements générés par les actions utilisateur (ou non) en lieu et place de l'état final, je vous donnerai les clefs pour démarrer une application Symfony utilisant ces principes, et vous apporterai des conseils et observations après plus d'un an de production avec ce type d'architecture.

17:10 Quoi de neuf dans Symfony depuis un an ?
Talk by Sarah Khalil in Track A (1 hour)

Il y a un peu plus d'un an, en novembre 2015 la version 3.0 est sortie. Beaucoup de choses se sont passées depuis ! 71 blog posts pour vous tenir au courant de toutes les nouveautés, plus de 1300 pull requests, 2 nouvelles versions… Je suis sûre que vous avez dû manquer un petit quelque chose ! Nous allons revoir ensemble ce qui est arrivé ; passer en revue les fonctionnalités que vous auriez râtées ou les redécouvrir.

Friday 31st March 2017

09:00
10
Qui veut gagner une carrière de développeur ?
Keynote by Thomas Gx in Track A

Keynote by CommitStrip. Venez assister à la grande première à Paris de cette émission basée sur un format complètement inédit ! Le but : trouver le meilleur job ! Comment ? Le candidat devra répondre à des questions toutes plus techniques les unes que les autres. La technicité et la logique du candidat seront mises à rude épreuve !

09:45 Architecture inutile ?
Talk by Jérôme Vieilledent in Track A (1 hour)

Symfony offre au développeur PHP une grande souplesse et une puissance certaine. Malgré cela, comme tout outil, il peut être mal utilisé s'il est mal compris, conduisant parfois des projets dans des situations délicates où l'urgence de la production fait inexorablement gonfler la dette technique. Et cette dette technique, elle se paye à terme beaucoup plus cher que l'investissement de départ ! Dans cette présentation nous mettrons en valeur les vertus d'une architecture logicielle réfléchie et pragmatique, exemples réels à l'appui. Nous verrons les outils que Symfony met à notre disposition pour y arriver, les design patterns mis en œuvre et les pièges à éviter. Les "buzzwords" SOLID, KISS, DRY et autres DDD prendront alors tout leur sens !

10:55 Déployer une app Symfony dans un PaaS
Talk by Tristan Darricau in Track A (40 minutes)

SensioCloud, Heroku, OpenShift... Aujourd'hui les solutions PaaS se démocratisent. Permettant de déployer une application et tous ses services dans des conteneurs, elles promettent de simplifier la vie des développeurs en gérant l'infrastructure avec le code. Mais, au moment de l'utiliser pour l'une de nos applications, de nombreuses problématiques dont certaines propres à Symfony se sont posées : déploiement continu, 0-downtime, gestion du cache / des mots de passe / de la performance, adaptation journalière aux pics de trafic, etc. Voici comment nous les avons résolues une à une, ce qui a réussi, ce qui a échoué et ce qu'il reste à faire.

11:40
9
Sécurité web : et si on continuait à tout casser ?
Talk by Alain Tiemblo in Track A

Sur le même principe que mon talk de l'année dernière ( slides ici pour les curieux : http://github.com/ninsuo/slides ), je vais vous montrer d'autres moyens de casser des sites, dans le but que vous sachiez comment vous protéger par la suite. Redirect attacks, URL obfuscation, Man-in-the-Middle, Password reuse, premium phone numbers, captcha cracking, insecure direct object reference... sont sûrement des buzzwords que vous avez entendus, mais savez-vous les exploiter ?

14:15 Créer des webapps modernes avec Symfony, ReactJS et API Platform
Talk by Kévin Dunglas in Track A (1 hour)

Découvrez comment utiliser Symfony et API Platform pour créer extrêmement rapidement des applications riches utilisant ReactJS pour leur couche de présentation. Nous créerons pas à pas une API web 100% fonctionnelle grâce à API Platform, Symfony et Doctrine. Il ne nous faudra que quelques minutes pour la concevoir, et pourtant elle supportera la validation, la pagination, les filtres, l’imbrication de ressources, sera documentée via Swagger et Hydra et disposera d’une interface graphique orientée développeur. Nous découvrirons ensuite les tout nouveaux outils frontend du projet API Platform : - Une système d'administration complet (à la Sonata), construit automatiquement en découvrant l’API et bénéficiant d'une interface moderne (Material Design) basée sur React et Redux - Un générateur de code permettant de créer des interfaces ReactJS en CRUD, à la manière des outils de génération de code fournis par Symfony (mais côté client).

15:00 Tout ce qu'un dev devrait savoir à propos d'Unicode
Talk by Nicolas Grekas in Track A (1 hour)

UTF-8, charsets, points de code, glyphes, CLDR, etc. Tout le monde connaît quelques mots des vocabulaires Unicode. Cette norme mondiale rassemble presque toutes les langues écrites sur Terre. Je vous propose de plonger dans ce fantastique projet qui organise tout ces éléments linguistiques et culturels importants de notre époque. Voyons comment nous, les développeurs, avons le privilège de jouer avec ces derniers au niveau technique. Comment cela marche-t-il? Comment cela s'applique-t-il aux applications que nous créons? Avez-vous entendu parler de collations ? Translitérations ? Grapheme Clusters ? NFC ? Laissez-vous guider.

16:10 Optimisations de performances avec PHP 7
Talk by Julien Pauli in Track A (1 hour)

PHP 7 a vu son moteur retapé en profondeur. Et les performances de cette version du langage sont sensiblement plus élevées que les versions précédentes. Nous allons voir ce qui a changé dans le moteur de PHP pour obtenir de tels niveaux de performances, et comment l'utilisateur peut en tirer parti dans son code. Nous parlerons de OPCache, du nouveau compilateur de PHP, du nouveau design des tableaux, de la nouvelle machine virtuelle et de toutes les optimisations que l'on peut utiliser, lorsqu'on les connait, en tant que développeur PHP. Nous utiliserons à la fois PHP 7.0 et PHP 7.1, et nous lâcherons quelques mots sur le futur de PHP en terme de performances pour savoir à quoi s'attendre dans les années à venir.