Programme

Lundi 23 novembre 2015

Keynote d'ouverture

Amphitéâtre Moebius 23/11/2015 09:00-09:30

Une keynote célébrant les 20 ans du langage, les 15 ans de l'association, la sortie de PHP7, et la diffusion de la vidéo communautaire "Haphpy birthday".

Symfony 3.0 est sorti !

Amphitéâtre Moebius 23/11/2015 09:30-10:00

Symfony 3.0 vient tout juste de sortir. Évidement, la compatibilité PHP7 est au rendez-vous. Et comme pour PHP7, tout a été fait pour que la migration vers ces toutes dernières technologies se fasse le plus simplement possible pour vous. Avec Symfony 3.0, le framework innove en continuité, sans vous obliger à réécrire toute votre application! Comment est-ce possible? Dans cette session, vous découvrirez comment la promesse rétro-compatibilité assure des migrations facilitées. Je vous présenterai également la nouvelle politique de dépréciation commencée avec Symfony 2.7. Ce sont les deux pierres angulaires qui permettent à Symfony de faire le grand écart : motoriser de nombreuses applications stables en production, sans sacrifier l'innovation au sein du framework.

Behat, c'est plus que ça !

Auditorium Lucienne et André Blin 23/11/2015 09:30-10:00

Behat est un outil extrêmement simple et puissant, mais il peut être utilisé de plusieurs manières totalement différentes. En mettant en place une suite de tests sur une application Symfony et en utilisant les mêmes contexts pour tester des niveaux différents de l'application, on va voir que la principale force c'est bien les différents profils et suites.

Taylorisme de la qualité logicielle

Salle de commission 23/11/2015 09:30-10:00

Retours d'expérience sur la manière dont il est possible d'industrialiser l'industrialisation des développements. Seront présentées la démarche et l'outillage mis en place chez différentes entreprises, notamment Radio France, pour aider les différentes équipes dans leur démarches d'industrialisation : points de difficultés (techniques et humains), réussites... On ne vous cachera rien Public: développeurs, CTO

Les flux : méconnus et sous-utilisés

Amphitéâtre Moebius 23/11/2015 10:00-10:30

Manipulations de fichiers ou de répertoires, compression et décompression à la volée, accès réseau, requêtes HTTP ou à travers SSH… Les flux sont partout ! Pour autant et bien qu’ils soient disponibles depuis plus de 10 ans, beaucoup d’entre nous n’utilisent les flux que de manière minimaliste, souvent sans en avoir conscience — et, en tout cas, sans en tirer bénéfice autant que nous le pourrions. Télécharger un fichier via un proxy HTTP ? Mettre en place une boucle d’événements asynchrone ? Et pourquoi pas ? Cette présentation dressera un tour d’horizon de quelques-unes des possibilités que nous offre le mécanisme de flux de PHP.

Comment Ansible et Docker changent notre environnement de mise en production

Auditorium Lucienne et André Blin 23/11/2015 10:00-10:30

Nous ne présentons plus Ansible et Docker, deux outils merveilleux. Mais comment peut-on les utiliser ensemble pour une maîtrise accrue de son infrastructure, et ainsi améliorer la collaboration entre Dev/Ops ? Les développeurs sont toujours friands des nouveautés. Les opérationnels ont une envie de stabilité et de maîtrise de leur infrastructure. Et si tout le monde parlait le même langage ? Nous montrerons comment avec Ansible nous pouvons créer des images dockers pour configurer nos services. Les Ops peuvent alors créer une image d'un type de service de base puis les développeurs peuvent ajouter à la suite leurs spécificités par rapport aux besoins applicatifs en créant une nouvelle image. Puis par la suite, nous présenterons comment déployer ces images dockers après vérification, directement dans son infrastructure à l'aide d'Ansible. N’est-ce pas la clé d'une meilleure collaboration entre Dev/Ops de pouvoir se relire facilement et ainsi éviter certaines erreurs ?

PHP Release Management and contribution

Salle de commission 23/11/2015 10:00-10:30

Learn how PHP releases are managed by the so called 'Release Managers'. What's their job ? How it works ? What's the release cycle ? How to contribute fixing bugs or adding new PHP features ?

The PHP 7 Story

Amphitéâtre Moebius 23/11/2015 11:00-11:45

PHP 7 is literally right around the corner, and in fact should already be out by the time this session takes place! With the previous major release of PHP having happened more than a decade ago, this is a very exciting milestone in PHP's history that promises to bring both far-reaching performance boosts for real world workloads and a host of new features. In this session, Zeev will share the evolution of PHP's major versions, the behind-the-scenes story of how PHP 7 came to be and its key benefits and features.

Scrum... Et après ?

Auditorium Lucienne et André Blin 23/11/2015 11:00-11:45

Scrum, c'est donner au métier la visibilité sur les contraintes techniques. Et si on communiquait aux dev directement les contraintes métiers ? Peut-etre que l'inversion de contrôle ça marche là aussi ?

Chez Evaneos, cela fait maintenant 9 mois que les devs ne sont plus au bout de la chaîne de décision du produit. En fait ça fait 9 mois qu'il n'y a plus de "chaine de décisions" tout court. On est passé par pas mal d'étapes différentes, du modèle "electron libre" au modèle "mini startup". Petit retour sur nos experiences d'organisation hors des sentiers battus.

Machine learning pour tous

Salle de commission 23/11/2015 11:00-11:45

Que faire quand vous avez du mal à trier et prioriser des informations ? La solution s'appelle Machine Learning. Le principe est simple : faire faire les apprentissages à une application pour qu'elle puisse classer, categoriser ou caracteriser différentes informations, sans les connaître initialement. Cela s'applique au spam, aux traductions ou même à la qualité de code. Le Machine Learning est parfois difficile à prendre en main avec de gros projets, alors nous verrons comment en faire sur des données plus modestes, et plus accessibles.

Mets du ValueObject dans ton modèle

Amphitéâtre Moebius 23/11/2015 11:45-12:15

Qu'est-ce qu'un ValueObject, quand et comment l'utiliser ? Nous allons faire le tour des avantages et inconvénients de cette méthode de représentation, avec des exemples concrets sur l'utilisation avec Doctrine 2.5.

One extension, three engines

Auditorium Lucienne et André Blin 23/11/2015 11:45-12:15

In this talk, I am explaining how we went from supporting a legacy driver for one language engine (PHP) to an architecture where multiple language engines are supported. This is the tale of the new MongoDB driver for PHP and HHVM. We started off with one massively complex (and legacy) driver. The goal was an easy to maintain extension. In our case that became a joint venture between core drivers (in C/C++), and a user-land supporting library in PHP. Because there are now other engines that run PHP, such as HHVM and PHP 7, the only real work that needs to be done for porting to a new engine is the basic core driver. This talk explains the choices, considerations and issues that we ran into while developing the driver to work with multiple engines; and our first steps supporting Facebook's HHVM.

Insuffler la culture client dans une équipe de dev

Salle de commission 23/11/2015 11:45-12:15

L’approche agile impacte fortement la relation client avec les équipes de dev. L’approche Produit axée autour de la valeur ajoutée des développements pour le projet a changé les relations et le fonctionnement des équipes projets.Nous ferons le tour des grandes étapes et des écueils qui aimèrent à ce changement qui n’a qu’un seul but : faire un projet de qualité qui répond au besoin des utilisateurs

Performance Testing for Modern Apps

Amphitéâtre Moebius 23/11/2015 14:00-14:30

The performance of your application affects your business more than you might think. Top engineering organizations think of performance not as a nice-to-have, but as a crucial feature of their product. Unfortunately, most engineering teams do not regularly test the performance and scalability of their infrastructure. Dustin Whittle shares the latest techniques and tools for performance testing modern web and mobile applications. Join this session and learn how to capacity plan and evaluate performance and the scalability of the server-side through Siege, Bees with Machine Guns, and Locust.io. We will dive into modern performance testing on the client-side and how to leverage navigation/resource timing apis and tools like Google PageSpeed and SiteSpeed.io to understand the real world performance of your users. We will cover how HTTP2 and modern browsers change the game for performance optimization with new best practices. Take back an understanding of how to automate performance and load testing and evaluate the impact it has on performance and your business.

Chronique d'un projet Driven Design

Auditorium Lucienne et André Blin 23/11/2015 14:00-14:30

Imaginez le topo : un projet d'ambition avec une première deadline forte. La nécessité de créer une base de code solide, facilement compréhensible et pouvant être modifié suivant les différents besoins. Alors la solution RAD ou... Driven Design ?

PHP7, hhvm & co

Salle de commission 23/11/2015 14:00-14:30

PHP 7 is on track, 1st test releases are out, everyone work hard to get the next php major version out. Dozen of patches have reached the branch,amazing RFCs have been worked on and committed. Are you ready to migrate? Hopefully yes! If not and you still need to improve performances, then let take a look at the alternatives. Be full stack alternative PHP implementations like php or small additions to speedup the critical parts of your apps.

My app is secure... I think

Amphitéâtre Moebius 23/11/2015 14:30-15:00

With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.

CQRS de la théorie à la pratique

Auditorium Lucienne et André Blin 23/11/2015 14:30-15:00

Séduisante sur le papier, nous avons pu confronter cette architecture à des problématiques bien réelles lors de l'implémentation d'une brique de gestion de stock. Nous vous proposons un retour d'expérience sur les obstacles et leurs solutions (transactionnalité, concurrence, résilience, gestion du synchronisme, ...) ainsi que sur les nombreux avantages et opportunités que nous avons tirés de cette architecture.

Collaboration Upstream / Downstream

Salle de commission 23/11/2015 14:30-15:00

Comment fonctionne la collaboration entre les projects (upstream) et les distributions (downstream). - attente des distributions - bénéfice pour les projets - distribution des binaires (PHP, et les extensions PECL) - distribuer les bibliothèques PHP dans un monde dominé par composer a-t-il encore du sens - distribution en .phar, quand upstream fait le boulot de downstream - Koschei ou l'intégration continue de la pile PHP dans Fedora

PHP Data Structures (and the impact of PHP 7 on them)

Amphitéâtre Moebius 23/11/2015 15:00-15:30

We all have certainly learned data structures at school: arrays, lists, sets, stacks, queues (LIFO/FIFO), heaps, associative arrays, trees,... and what do we mostly use in PHP? The "array"! In most cases, we do everything and anything with it but we stumble upon it when profiling code. During this session, we'll learn again to use the structures appropriately, leaning closer on the way to employ arrays, the SPL and other structures from PHP extensions as well. The impact that PHP 7 should have on data structures will be introduced as well.

Halte à l'Anarchitecture !

Auditorium Lucienne et André Blin 23/11/2015 15:00-15:30

Si la plupart des projets d'applications web se reposent désormais sur des frameworks, hélas, il ne faut pas oublier que ceux-ci ne fournissent que l'infrastructure de l'application. Déterminer les couches qui constitueront la structure de l'application, y organiser son code pour répondre au mieux aux problématiques métier, garantir la maintenabilité, la stabilité, les performances... autant de challenges qui restent à la responsabilité des architectes, et des développeurs, et auxquelles les frameworks n'apportent pas de réponse.

Portable PHP

Salle de commission 23/11/2015 15:00-15:30

PHP as core technology for web development and more is available on many platforms. Though, despite the high abstraction level, quite some discrepancies can be observed. Those affect both extensions/SAPIs and PHP projects, retaining to be available cross platform. This talk sheds the light onto the interoperability aspect of PHP in questions of platform differences in general (Linux/Windows/etc.) and PHP 7 improvements in 64-bit and thread safety areas.

Zoom sur les objets PHP

Amphitéâtre Moebius 23/11/2015 15:30-16:15

Ce sujet traite des détails techniques internes concernant les objets PHP. Que fait PHP lorsque je crée un objet ? Combien d'objets maximum puis-je créer ? Quelle mémoire PHP y alloue-t-il ? Quand est-ce que PHP libère la mémoire de mes objets ? Comment fonctionnent les classes et les traits ? Que dire des destructeurs d'objets ? Toutes ces questions trouveront réponse dans cette présentation ayant pour but de vous montrer ce qu'il se passe sous le capot lorsque vous manipulez vos frameworks préférés au jour le jour.

Pourquoi atoum est-il un échec ?

Auditorium Lucienne et André Blin 23/11/2015 15:30-16:15

Atoum est un framework de tests unitaires sur lequel j’ai commencé à travailler en 2005 à la sortie de PHP 5. En 2010, j’ai libéré son code et à l’époque, il était le seul outil de ce type à exploiter les fonctionnalités de PHP 5.3 afin d’apporter à l’utilisateur une expérience différente, plus agréable et plus fun. Depuis, le projet a évolué en fonction des évolutions de PHP et des outils qui orbitent dans son sillage ainsi qu’à l’aide du feed-back de ses utilisateurs. Pour autant, le mantra qui dirige son développement n’a jusqu’à maintenant jamais été perdu de vue et tout a été fait pour qu’atoum demeure un outil simple, moderne et intuitif. Je sais qu’il est utilisé par de petites et grandes entreprises. Pour autant, à mes yeux, le projet est actuellement un échec. Pour quelles raisons ? Quelles leçons ai-je tirées de cette aventure ? Et à partir de ces questions et des réponses que j’y apporterai, j’espère ouvrir le débat et ainsi obtenir quelques clefs qui me permettront un jour d’ouvrir le chemin vers le succès pour atoum !

Towards Modelling Processes

Salle de commission 23/11/2015 15:30-16:15

Processes are at the heart of how many businesses operate. The processes are governed by policies, agreed upon with contracts, and guided by documents. In software systems on the other hand, we often bury the processes. There’s a domain model for sure, but it’s all about “things” and “operations on things”. We need better, more explicit, more visual temporal models, so we can reason about the effects of time.

PHP 7 – What changed internally?

Amphitéâtre Moebius 23/11/2015 16:45-17:30

One of the main selling points of PHP 7 is greatly improved performance, with many real-world applications now running twice as fast... But where do these improvements come from? At the core of PHP 7 lies an engine rewrite with focus on improving memory usage and performance. This talk provides an overview of the most significant changes, briefly covering everything from data structure changes, over enhancements in the executor, to the new compiler implementation.

Unglue all the things!

Auditorium Lucienne et André Blin 23/11/2015 16:45-17:30

Bundles. Packages. Modules. Plugins. So much code is locked up in framework-specific packages. Integration packages are not bad, but losing the ability to reuse code that has nothing to do with a specific framework's implementation is! Don't let reusable code get locked into framework-specific glue packages! Come see practical strategies for writing framework agnostic code and walk away having a better idea how you, too, can unglue all the things!

Retour d'expérience sur l'édition d'un "Enterprise Software" en PHP

Salle de commission 23/11/2015 16:45-17:30
Akeneo PIM est un outil de gestion de catalogue produits open-source basé sur Symfony et Doctrine.
Le développement a démarré il y a 3 ans, nous proposons une version communautaire et une version entreprise, utilisées par des clients grands comptes au sein de leur SI.
La société connait une forte croissance, 40+ personnes aujourd'hui, dont 15 au sein de l'équipe produit, cette équipe se concentre sur le développement de nouvelles fonctionnalités ainsi que sur le support et la maintenance, les développements spécifiques sont réalisés par un réseau de partenaires (sociétés de services).
Dans ce contexte, et sous la forme d'une rétrospective, nous ferons un retour d'expérience sur la création du produit, des étapes clés aux écueils rencontrés, en passant par la question des performances, de l'extensibilité pour les intégrateurs, de la maintenabilité, de la scalabilité, de l'outillage, ou encore des choix d'architecture et de leurs impacts, de la question de la dette technique, des BC Breaks et bien plus encore !

Lightning-talks

Amphitéâtre Moebius 23/11/2015 17:30-18:00

Une idée de sujet ? Un thème à aborder en 5 minutes chrono ? Prêt à passer sur la grande scène du Beffroi ? 

Proposez votre sujet de lightning-talk en arrivant le lundi matin au Forum PHP 2015, nous ferons la sélection et peut-être passerez-vous sur scène durant cette session de lightning-talks pour parler de ce qui vous tient le plus à coeur au sein de PHP !

Mardi 24 novembre 2015

Liberez vous de votre client HTTP avec PSR7 et Httplug.

-

Ecrire une API client, c'est avant tout choisir une librairie pour faire des appels HTTP. Que ce soit quelque chose de très basique, comme des appels avec curl ou file_get_contents, ou des dépendances plus élaborées comme Guzzle ou encore React PHP. Il y a cependant un problème majeur: les autres api clients n'auront pas forcement fait le même choix. Ce qui peut poser des conflits (guzzle4 vs guzzle5 vs guzzle6 ...) et avoir plusieurs dépendances servant le même principe. Nous verrons comment avec PSR7 et Httplug vous pouvez écrire vos API clients en s'affranchissant de cette problématique tout en laissant le choix à l'utilisateur final.

A la découverte de Prophecy

Amphitéâtre Moebius 24/11/2015 09:00-09:30

Vous avez entendu parlé de PHPSpec ? Et bien sa librairie de mock s'appelle Prophecy, et elle est des plus intéressantes ! Nous allons découvrir son API, les similarités et les améliorations que Prophecy nous offre en comparaison avec l'API de PHPUnit. Nous finirons par l'intégration de Prophecy dans PHPUnit.

A deep dive into image manipulations with Glide

Auditorium Lucienne et André Blin 24/11/2015 09:00-09:30

Almost all apps require some form of image cropping or resizing. This is often done with background jobs, using tools like GD and ImageMagick. This course will introduce you to a new way of doing image manipulations using a library called Glide. Glide, a recent addition to The PHP League, is a wonderfully easy to use on-demand image manipulation library with an HTTP based API. This course comes from the author of the Glide library. With a big 1.0 released planned planned for this summer, this is an excellent time to learn more about this package, which continues to gain popularity in the PHP community. Beyond explaining how to use Glide, I'll share some of my experiences building this package and being part of The PHP League. Topics include: - Introduction - Basic installation - Installing in popular frameworks - Setting up file systems using Flysystem - Setting default manipulations - Overview of the configuration options - How to securing image requests - Using the actual API - Advanced usage

Drupal : Exemple de réussite d'un projet communautaire PHP

Salle de commission 24/11/2015 09:00-09:30

Drupal aura bientôt 15 ans et les fêtera brillamment avec la sortie de sa version 8.0. Au moment où PHP fête ses 20 ans, voici une double occasion de se retourner sur le chemin parcouru et d'envisager l'avenir. Comment sont organisés le projet Drupal et la communauté Drupal ? Quelles forces et énergies propulsent ce projet, exemple typique de projet libre et communautaire basé sur PHP ? Quelles sont les interactions avec les autres communautés (PHP et au-delà) ? Quelles sont les clés de cette réussite et les points de vigilance ? Voici quelques unes des questions auxquelles répondra cette conférence. Cette conférence permettra de comprendre l'organisation du projet et quelques points essentiels qui font la force de la solution Drupal et sa pérennité.

ZF3, le futur de PHP

Amphitéâtre Moebius 24/11/2015 09:30-10:00

Avec ZF3, Zend investi le monde des middleware et des micro-frameworks en apportant une interopérabilité maximum. Porteur de la PSR7, Zend à formaliser le context HTTP des applications PHP ouvrant la voie à une nouvelle génération d'application PHP agnostique. ZF3 c'est aussi l'amélioration des éléments fondateurs de ZF2 pour plus de performances. Cette conférence est une présentation dans la bonne humeur de toutes ces nouveautés avec examples à l'appui.

Soyez spécifiques ? Un business clair et du code limpide avec RulerZ

Auditorium Lucienne et André Blin 24/11/2015 09:30-10:00

Nos logiciels intègrent des notions fonctionnelles, parfois difficiles à appréhender, et tendent vers de plus en plus de complexité. Réduire la difficulté de prise en main de leur code applicatif est donc primordial. Des approches telles que le Domain Driven Design tentent de diminuer l'impact de cette complexité, notamment grâce à la mise en avant des règles métier. Nous voulons avant tout nous concentrer sur les aspects fonctionnels de notre code. Disposer d'un outil permettant d'exprimer nos règles métier de manière claire et testable a donc un intérêt évident ! Bien sûr, s'il est également capable de faciliter le requêtage tout en faisant abstraction du mécanisme employé pour le stockage des données, pourquoi s'en priver ? « Un client ayant passé plus de 10 commandes et s'étant inscrit dans l'année aura une réduction de 8% » Imaginez pouvoir tester si un client donné satisfait cette règle. Mieux, imaginez que la même règle puisse être utilisée avec Doctrine, Elasticsearch, Pomm et autres pour retourner les clients ayant droit à la réduction. Nous verrons à travers plusieurs cas réels que c'est exactement ce que RulerZ permet d'accomplir.

PrestaShop 1.7 : le renouveau d'une plate-forme e-commerce

Salle de commission 24/11/2015 09:30-10:00

accompagné de Julien Bourdeau, Core developer de PrestaShop.

Deploying PHP 7

Amphitéâtre Moebius 24/11/2015 10:00-10:45

PHP 7 brings drastic performance improvements and new features along with a couple of minor BC breaks. Learn how to identify these BC breaks and which new features to immediately adopt in
order to get ready to upgrade to PHP 7. And with this upgrade now would be a good time to revisit your deploy strategy to make sure it is safe, efficient and atomic.

L'architecture événementielle chez Meetic

Auditorium Lucienne et André Blin 24/11/2015 10:00-10:45

Gérer des interactions entre utilisateurs est notre métier depuis plus de 13 ans. Notre architecture événementielle "historique" ayant montré ses limites, nous avons entrepris une refonte de celle-ci. Nous avons choisi de baser notre nouvelle architecture sur Apache Kafka. Nous présenterons cette techno, ainsi que les raisons qui ont motivé ce choix. Nous ferons également un retour d'expérience sur les différents points auxquels nous avons été confronté :
- Comment intégrer cette nouvelle brique dans le SI existant.
- Comment publier des messages depuis un applicatif PHP.
- Comment notifier un applicatif PHP. Développement d'un démon pour consommer les messages (programmation réactive en Scala, utilisation du Framework AKKA).
- Comment tenir la charge, et s'assurer de la haute disponibilité de l'ensemble.
Nous présenterons également les gains que nous avons obtenus, notamment en terme de diffusion de l'information.

WordPress, des blogs personnels aux sites de multinationales

Salle de commission 24/11/2015 10:00-10:30

Xavier Borderie accompagné de Nicolas Juen

Framework agnostic for the win

Amphitéâtre Moebius 24/11/2015 11:15-11:45

We all have our favourite frameworks and tools, and naturally we tend to participate largely within those communities. However, we may be missing some opportunities for cross-pollination of ideas within the larger PHP ecosystem. In this talk I'll show you why The PHP League has made it their mission to write framework agnostic code. Here's a hint: Thanks to the PHP-FIG and Composer, packages are becoming the glue that binds the various PHP communities together. Come learn why everyone wins with framework agnostic code!

API Platform : un framework dédié aux applications API-first

Auditorium Lucienne et André Blin 24/11/2015 11:15-11:45

API Platform est un tout nouveau framework PHP qui permet de construire des applications performantes, évolutives et interopérables. Il est basé sur les nouveaux standards du web: JSON-LD, Hydra, Schema.org et JSON Web Token (JWT). Il est 100% compatible avec Symfony et ses milliers de bundles. Au cours de ce talk je présenterai les concepts sur lesquels il repose à savoir une API REST centrale consommée par différents types de clients tel que des applis web et mobiles (API-first), le pattern Action-Domain-Responder, un système d'évènements puissant et flexible et des composants "standalones". Je m'attarderai ensuite à montrer comme les fonctionnalités de API Platform rendent la création d'applications web et mobiles modernes, performantes et intéropérables et à la portée de tous grâce à ses multiples fonctionnalités : - Générateur de modèle de données dérivé du vocabulaire Schema.org (PHPDoc complète, support de l'ORM Doctrine et de la validation Symfony) - Création automatique d'une API REST de niveau 3 (hypermédia) complètement fonctionnelle (CRUD, validation, listes, paginations, filtres, négociation de contenu...) et 100% extensible - Authentification stateless (cookie-less) - Intégration aisée avec de nombreux clients tel que AngularJS, Guzzle, et les applis mobiles - Behavior Driven Development et web acceptance testing avec la distribution adaptée à API Platform de Behat - Découverte et utilisation d'une interface d'administration générique via Hydra Console La présentation sera didactique et accessible aux développeurs PHP de tous niveaux. La construction d’une micro-application suivant cette architecture sera présentée pas à pas.

Magento 2 in Today's PHP Universe

Salle de commission 24/11/2015 11:15-11:45

How is the Magento 2 architecture going to be relevant in today's rapidly-evolving PHP ecosystem? This talk will not only provide a general overview of Magento 2's architecture, but also put it face-to-face with the latest PHP development practices: like the use of Composer, unit and functional testing, modular design, the PSRs, and more!

Un éléphant dans le monde des licornes

Amphitéâtre Moebius 24/11/2015 11:45-12:15

Découvrez comment BlaBlaCar utilise PHP au quotidien pour étendre son service à l'international.
Nous verons ensemble un aperçu de nos méthodologies et nos choix techniques qui nous ont amené jusqu'ici.
Un retour d'expérience sans prétention de nos réussites, de nos erreurs et de
nos ambitions en terme d'architecture pour les mois à venir.

Rabbits, indians and... Symfony meets queueing brokers

Auditorium Lucienne et André Blin 24/11/2015 11:45-12:15

It is 2015, and if you are processing resource-intensive tasks in directly in your PHP applications or using cronjobs, you are soon going the way of the dinosaurs. Queuing systems can help to improve response times, scalability and stability of web apps. However, there is a learning curve involved. In this talk, the speakers will give an overview of queueing systems, focusing on the amqp protocol - but not just rabbitmq, and go from architecture to implementation and integration with Symfony. Make it fly, make it scale!

Suivre ses séries avec des API

Amphitéâtre Moebius 24/11/2015 14:00-14:45

C'est après avoir perdu tout repère dans les épisodes de mes séries américaines que j'ai créé BetaSeries il y a 8 ans. Le principe de BetaSeries est simple : Créer son planning de séries télé pour savoir quels épisodes restent à regarder et découvrir de nouvelles séries plus facilement. Aujourd'hui BetaSeries regroupe plus de 10 000 séries, 450 000 épisodes et maintient le planning de plus de 600 000 membres. Pendant cette conférence je montrerai sur quels services s'est basé et se base aujourd'hui BetaSeries et comment utiliser le plus efficacement une dizaine d'API en simultané pour créer de la valeur ajoutée à sa communauté.

MySQL 5.7 & JSON: New Opportunities for Developers

Auditorium Lucienne et André Blin 24/11/2015 14:00-14:45

Celebrating the 20 years of MySQL, Tomas Ulin, Vice President of MySQL Engineering at Oracle, will review what's new in MySQL 5.7. He will then focus on the newly added JSON support, enabling developers to combine the flexibility of NoSQL with the strength of a relational database. Tomas will explain the new JSON datatype, and the new set of functions for handling JSON documents, available storage and indexing options. In addition, he will present benchmarks showing how much one can expect from the MySQL server in different use case scenarios.

How I learned to stop worrying and love Regular Expressions

Salle de commission 24/11/2015 14:00-14:45

This session will cover Regular Expressions from the basics to the darkest corners of this arcane art. Regular Expressions at the core come in handy to achieve validation and text manipulation tasks. In the day to day life of a developer, becoming comfortable with them opens up many more use cases. As one of the tortured souls that actually enjoys writing - and reading - regexes, Jordi will share his passion so that you too can see there is no reason to worry.

What We Talk About When We Talk About Distributed Systems

Amphitéâtre Moebius 24/11/2015 14:45-15:30

Distributed Systems are a complex topic. There's abundant research about it but sometimes it is hard for a beginner to know where to start. I would like to outline the main concepts of distributed systems, so the interested person can have a clear path on how to start their own research as well. In this talk I will review the different models: asynchronous vs. synchronous distributed systems; message passing vs shared memory communication; failure detectors and leader election problems; consensus and different kinds of replication. I will also review a series of books on distributed systems in order to recommend the best one according to the topics we would like to learn about, or the problems we would like to solve. The goal of the talk is to set a good foundation for people interested in learning more about distributed systems. Goals: When learning about Distributed Systems there are lot of books and papers to chose from, with many of them having titles that are hard to understand. It's difficult then to judge their relevance to our interests if we don't know the topic already. The goal of the talk is to lay a common ground for Distributed Systems so everyone can benefit from the current research on the topic. Audience: Engineers interested in getting started with Distributed Systems

Auchan E-Commerce France : Retour d'expérience sur la migration du Back-Office

Auditorium Lucienne et André Blin 24/11/2015 14:45-15:30
Chez Auchan E-Commerce France, depuis maintenant plus d'un an, la révolution est en marche. Afin de mieux supporter les projets et les ambitions du groupe, la refonte du logiciel Back-Office a été entamée pour passer d'un code monolithique "legacy" à une architecture orientée service. Avec plus de 30 développeurs PHP travaillant sur plusieurs centaines de milliers de lignes de code, tout n'est pas aussi simple et facile que quand on part d'une feuille blanche avec un équipe réduite.
 

Ce retour d'expérience vous présentera les outils et les méthodes qui ont été mises en oeuvre pour passer d'un vieux code PHP testé et exploité à la main à une architecture orientée service intégrée de manière continue. Le tout, sans arrêter le métier.

Table ronde

Amphitéâtre Moebius 24/11/2015 16:00-17:00

Table ronde présentée par Pascal Martin, en charge de PHP Internals. Il sera entouré de Zeev Suraski, Rasmus Lerdorf, Julien Pauli et Remi Collet. 

Keynote de clôture

Amphitéâtre Moebius 24/11/2015 17:00-17:30

Ce n'est qu'un au revoir ! Destination le PHP Tour Clermont Ferrand 2016, au printemps prochain !

informations complémentaires

Le programme ci-dessus est donné à titre indicatif : il peut encore évoluer.

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 :