Keynote d'ouverture
Bienvenue au Forum PHP 2016 par l'AFUP !
Headers HTTP: Un bouclier sur votre application
NIVEAU : Intermédiaire
Vous connaissez tous les vulnérabilités XSS; savez-vous ce qu'est le Clickjacking ? Vous avez probablement entendu parler de compromission de Root Certificate; savez-vous ce qu'est une attaque par protocol downgrade ? Vous développez des applications HTTP et je vous présenterai de merveilleux headers qui vous aideront à mitiger ces attaques, en utilisant uniquement les recommandations du W3C WebAppSec.
Comment Etsy déploie plus de 50x par jour en toute confiance
NIVEAU : Tout public
Etsy est une marketplace internationale comptant près de 1000 employés à travers le monde et parvient à mettre en production toutes les 10 minutes tout en gardant un site stable. Comme beaucoup d'autres sociétés quelques années auparavant, les déploiements chez Etsy nécessitaient l'effort d'une armée d'ingénieurs pendant 6 à 14 heures et se terminaient la plupart du temps par un site down. Au fil du temps, Etsy a su s'équiper de processus et d'outils permettant de faire évoluer la plateforme grâce au continuous deployment. Aujourd'hui, tous les employés peuvent mettre en production en toute confiance (même les animaux !). Durant cette conférence, je présenterai comment Etsy a réussi à atteindre cet objectif en revenant sur la philosophie que nos ingénieurs ont insufflée dans notre pipeline de déploiement continu, les outils et les intégrations que nous avons mis en place (pushbot on chatroom, config flags, ...) et comment nous nous assurons de la stabilité de nos changements depuis le commit de code de l'ingénieur en passant par notre intégration continue jusqu'à la mise en production et sa supervision grâce à nos outils de monitoring.
Industrialisation et automatisation chez M6Web Lille
Petit tour d'horizon des différents outils et workflows utilisés et des actions menées depuis 1 an chez M6 Web Lille pour faciliter le quotidien des développeurs (mais pas que).
Sylius eCommerce Framework - Something for Every Developer
eCommerce has changed. Existing technology is not suitable for the crazy ideas of start-up market and even big companies are struggling with current solutions, which cannot be adapted to their unique needs. Tailored eCommerce experience is something that everyone needs, but monolithic applications cannot provide us with the required level of flexibility. Sylius solves this problem. Project is completely free and released under the very permissive MIT license. It is community-driven project and there is no enterprise version. In this talk I introduce core concepts behind the project, show code examples and encourage everyone to try it out and contribute. While Sylius app is based on Symfony, components are plain-PHP libraries and can be used with any framework. In Sylius, there is something for everyone, even if you are not a Symfony developer and not working on a strictly eCommerce website. Thanks to Sylius openness, it is also a great learning example for developers. I think it is safe to say it is the biggest Open Source Symfony application and also the richest reference for usage of Behat and phpSpec.
Notre environnement de développement n’est plus un bizutage !
NIVEAU : Tout public
Lorsque nous avons commencé à travailler sur notre plate-forme, nous avons hérité d’applications développées en externe, quasiment déployées en production, à l’architecture mal documentée. À partir de là, nous avons tant bien que mal installé nos environnements de développement. Pas de vagrant, pas de docker et pas d’automatisation : juste des notes, sur deux wikis se contredisant parfois ! Nous avons commencé à grandir et, avec notre plate-forme multicomposants qui avait évolué, nos nouveaux collègues ont bataillé plusieurs semaines avant de pouvoir participer ! Alors, nous avons réfléchi : comment intégrer de nouveaux développeurs ? Comment travailler sur des environnements ressemblant suffisamment à la production pour éviter les pièges les plus communs ? Depuis, nous avons automatisé et virtualisé, tout d’abord à l’aide de Chef et Vagrant, puis en passant à Docker et en mettant en place un registre interne. Nous y avons gagné des environnements plus fiables et mieux maitrisés. Nos nouveaux collègues ne dépriment plus pendant deux semaines à leur arrivée et peuvent plus rapidement commencer à découvrir nos projets, nous avons plus de libertés d’expérimentation. Et, bonus, nous les réutilisons pour notre plate-forme d’intégration continue !
Affrontez la dette technique de votre projet en toute agilité
NIVEAU : Tout public
Célérité en baisse, augmentation du nombre de bugs en prod, moral des dèvs qui diminue malgré un baby-foot flambant neuf: vous avez sans doute un problème de dette technique. À travers cette conférence, je veux vous partager mon retour d'expérience sur la gestion de la dette technique de manière agile et lean. Notre projet de plus de 6mois avec une vingtaine de développeurs a eu de nombreuses occasions d'en générer..
Make is an actual task runner
NIVEAU : intermédiaire
Construire une application correctement et de manière productive passe forcément par de bons outils. Aujourd'hui, PHP a emprunté pas mal de concepts au développement frontend, on voit donc de nouveaux outils arriver dans notre environnement.
Côté frontend, nous disposons de quelques task-runners :
- Gulp
- Grunt
- NPM
- ...
Dans le monde PHP, nous commençons également à en avoir quelques-uns :
- Phing
- Robo
- Bldr
- Composer
- ...
Ces outils demandent tous d'apprendre un langage de configuration qui leur est propre, plus ou moins complexe, et d'ajouter pas mal de dépendances à vos projets pour, au final, lancer simplement un outil qui est, la plupart du temps, accessible en ligne de commande.
Pour finir, aujourd'hui, nos applications utilisent souvent plusieurs technologies, qui ont chacune leurs outils qui ne sont pas unifiés. Pourquoi ne pas simplement utiliser un outil connu, éprouvé et portable : Make !
Au cours de cette présentation, je vais vous montrer les avantages de Make par rapport aux autres task-runners et vous présenter quelques astuces qui vous permettront de l'utiliser au mieux pour gérer les tâches récurrentes de vos projets, du développement jusqu'à la mise en production en passant par l'intégration continue.
télétravail ? C'est bon, mangez-en !
NIVEAU : tout public
Le télétravail (ou le remote working pour ceux qui font du digital), vous ne le savez peut être pas encore mais vous voulez en faire ! Moins de temps dans les transports, plus de temps en famille, travaillez d'où vous souhaitez ! Mais attention tout n'est pas tout rose, Je vais vous présenter le télétravail, pour le meilleur et pour le pire.
CLINIQUE "Profiling de votre code en live avec Blackfire"
Démonstration de Blackfire et ses nouvelles fonctionnalités. Si un candidat le souhaite, nous pourrons faire une partie de la démo sur son code ! Du debugging en live donc. Intéressé ? Proposez votre sujet au stand Blackfire, et pensez à installer Blackfire sur une machine ayant l’appli à profiler déployée avant de nous rejoindre au Forum PHP !
Le PHP fonctionnel pratique et rapide avec reactivex #react #rx #rabbit #redis
ATELIER : Lors de cet atelier nous allons créer un serveur HTTP en PHP, le faire travailler en asynchrone pour enregistrer, lire des informations depuis un Redis et déléguer du travail à un consumer RabbitMQ. Ensuite nous allons voir comment le faire gérer 10k requêtes par seconde sans cache et sans trop gêner le processeur. N'hésitez pas à apporter vos problématiques business pour une mise en pratique utile.
INSCRIPTION OBLIGATOIRE ! C'est par ici
CLINIQUE "Circuit breaker, le fusible de votre site"
Quand l'électricité est arrivée dans les maisons, il y a eu beaucoup d’accidents dûs à des courts-circuits. On a alors mis en place le système de fusibles. Le Circuit Breaker, c'est le fusible des architectures microservice. Mais comment fonctionne-t-il ? Comment je l’implémente ? Parlons de ce nouvel outil méconnu.
La place de PHP dans l’architecture technique de Radio France
Radio France est une grande maison : 7 chaînes Radio, chacune produisant en continu des programmes à l'antenne, des webradios, des articles, des fiches d'information. L’ensemble de la programmation est disponible en ligne et à l’avance, mais aussi au téléchargement en podcast. Pour que tout cela fonctionne correctement, une cinquantaine de développeurs et d’adminsys manipulent au quotidien une grande diversité de technologies et langages de programmation : PHP, NodeJS, Go, Puppet, Terraform, AWS, Jenkins, Gitlab, Docker, RabbitMQ, ElasticSearch, Graphite, Prometheus, etc … Et ce sur presque deux cents serveurs sur AWS et Google Cloud Engine.
À l’issue de cette présentation vous aurez une bonne idée de nos principaux problèmes métier, de notre architecture technique globale et du rôle que l’écosystème PHP occupe dans cette architecture. La technologie et les attentes des utilisateurs étant en perpétuel mouvement, vous en saurez aussi un peu plus sur les grands chantiers en cours.
Publier des domain events sans RabbitMQ, c’est possible !
Dans une approche DDD (Domain Driven Design), la publication de Domain Events permet la communication entre différents Bounded Contexts (périmètres métiers autonomes et isolés). Vous refusez de complexifier votre application avec une couche supplémentaire de messaging ? Vos ops ne sont pas favorables au déploiement de RabbitMQ ? Nous verrons à travers un exemple concret qu’il est possible de s’en passer.
Migrer d'une architecture custom à Symfony : la refonte de PrestaShop
PrestaShop est un outil open source de création de boutique en ligne très populaire. A l'origine un projet de fin d'étude, le logiciel au fil des années et des versions a évolué pour inclure les fonctionnalités, la puissance et la flexibilité nécessaires pour servir de base à plus de 250 000 boutiques. Avec presque 10 ans de développement et un grand nombre de contributeurs, le coeur du logiciel a récemment commencé à montrer ses limites. L'équipe en charge de la version 1.7 a donc décidé de commencer la migration du code vers Symfony. Cette conférence raconte les décisions prises par l'équipe au cours du développement de cette version, les obstacles rencontrés, et les solutions techniques trouvées.
Comment relire du code pourri sans se fatiguer
Pour assurer une revue continue du code PHP, il faut deux outils : une référence de programmation, avec des recommendations claires et adaptées. Celle-ci peut se constituer aisément à partir des recommandations du manuel officiel, des bonnes pratiques et des traditions PHP. L'autre outil est un auditeur statique, qui repasse chaque ligne au peigne fin et traque inlassablement ce qui doit être amélioré. Nous verrons comment ils fonctionnent ensemble, et jusqu'où ils peuvent mener votre code sur le chemin de la qualité.
Pourquoi strlen("🌮") != 1 ?
NIVEAU : Débutant
Connaissez vous vraiment Unicode et tout ce qu'il peut faire pour vous ? Le bien, comme supporter le prénom "Óðinn" et permettre au dieu de la guerre Viking de s'enregistrer sur votre site, comme le mal avec de l'usurpation d'identité, ou même de l'execution de code arbitraire ! Nous allons aussi voir ensemble les outils qui vont vous faciliter l'internationalisation et le support de la vaste diversité des dialectes écrits dans vos applications.
De CodeIngiter vers CQRS en passant par la case Capital
NIVEAU : Tout public
Retour d'expérience sous la forme d'une partie de Monopoly™ un peu particulière. L'objectif n'est plus de s'enrichir mais de rembourser une dette héritée en début de partie. Entre la gare de Lyon qui peut vous envoyer votre équipe conférence ou la case Capital qui vous donnera 20 000rpm. Serez-vous prêt à investir dans un hotel de micro-services sur la rue de la Paix sans vous ruiner ? Prenez garde, à tout moment vous pourrez tomber sur la case prison ...