Programme

jeudi 27 octobre 2016

Keynote d'ouverture

Auditorium Lucienne et André Blin 27/10/2016 09:00-09:30

Bienvenue au Forum PHP 2016 par l'AFUP !

Headers HTTP: Un bouclier sur votre application

Auditorium Lucienne et André Blin 27/10/2016 09:30-10:15

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

Grand Salon 27/10/2016 09:30-10:15

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

Auditorium Lucienne et André Blin 27/10/2016 10:15-11:00

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

Grand Salon 27/10/2016 10:15-11:00

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 !

Auditorium Lucienne et André Blin 27/10/2016 11:30-12:15

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é

Grand Salon 27/10/2016 11:30-12:15

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

Auditorium Lucienne et André Blin 27/10/2016 12:15-12:30

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 !

Grand Salon 27/10/2016 12:15-12:30

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"

Salle Moebius 27/10/2016 13:30-13:45

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

Salle de commission 27/10/2016 14:00-17:00

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"

Salle Moebius 27/10/2016 14:00-14:15

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

Auditorium Lucienne et André Blin 27/10/2016 14:30-15:15

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 !

Grand Salon 27/10/2016 14:30-15:15

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

Auditorium Lucienne et André Blin 27/10/2016 15:15-16:00

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

Grand Salon 27/10/2016 15:15-16:00

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 ?

Auditorium Lucienne et André Blin 27/10/2016 16:30-17:15

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

Grand Salon 27/10/2016 16:30-17:15

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 ...

Lightning Talks

Auditorium Lucienne et André Blin 27/10/2016 17:15-17:45

Une idée de sujet à présenter ? Passez de l'autre côté, éveillez le speaker qui est en vous, vous avez 5 minutes chrono ! 

vendredi 28 octobre 2016

Atelier sur les WebSockets, amusons-nous tous ensemble

Salle de commission 28/10/2016 09:00-10:30

NIVEAU EN PHP REQUIS: intermédiaire
NIVEAU EN WEBSOCKET REQUIS : débutant
 

ATELIER D'1h30 : WebSocket est un protocol réseau permettant une communication asynchrone et bi-directionnel entre un serveur et plusieurs clients. Durant cet atelier, nous allons découvrir le protocol à travers un jeu ludique que nous développerons en partie ensemble. Nous verrons entre autre comment créer un jeu multi-joueurs, avec des canaux publics et privés, ainsi qu'un chat pour échanger. Cela fera intervenir des messages textes et binaires échangés entre 2 ou plusieurs participants, et une couche cryptographique pourra être ajoutée. Nous utiliserons Hoa\Websocket, une bibliothèque implémentant un serveur et un client de haute qualité et sûreté.

INSCRIPTION OBLIGATOIRE ! C'est par ici

Retour d'expérience Auchan : surveiller ses applications en production

Auditorium Lucienne et André Blin 28/10/2016 09:30-10:15

NIVEAU : Tout public

L'exploitation d'une application passe par la surveillance de celle-ci. Afin de prendre les bonnes décisions, il est important de connaître l'utilisation qui en est faite. Nous verrons dans un premier temps les outils du marché qui existent, et comment choisir parmi l'éventail des solutions possibles la bonne solution pour le problème qui vous est donné. Ensuite, une fois l'outil choisi, nous verrons comment instrumentaliser son application pour que celle-ci communique avec l'outil que vous avez choisi. Nous parcourrons les différents composants PHP existants et nous verrons les avantages/inconvénients de chacune de ces solutions. Une fois notre outil choisi et notre application instrumentalisée, il ne reste qu'à définir les métriques et les événements qu'on veut surveiller. Nous réfléchirons aux métriques qu'il est utile de surveiller et, pour chacune, quelle est sa valeur ajoutée dans la prise de décision. Finalement, il vous sera présenté les parti-pris qui ont été fait chez Auchan Retail France sur chacun de ces points et comment nous faisons pour surveiller nos applications afin d'aider l'ensemble des équipes à prendre les bonnes décisions.

Boost up your code with Specifications

Grand Salon 28/10/2016 09:30-10:15

Big repositories, complex query builders, tight coupling to your ORM. Adding new behaviors or new findBy*() methods can be a mess. Everyone knows this trouble. Don't struggle anymore! This talk shows you how to decouple you from the ORM and writing general search behaviors for all your entities with the specification pattern. Your new specifications are not tied to any specific ORM. With the awesome RulerZ library they can be applied to any data source you can imagine - your repositories, ElasticSearch or Solr, arrays, API collections or even unicorns.

Deploying enterprise PHP applications

Auditorium Lucienne et André Blin 28/10/2016 10:15-11:00

Magento 2 marks a big upgrade in the PHP project. Not only has how we work with the code changed but Magento 2 has introduced new workflows for the backend and frontend. We now have different modes, Dependency Injection and DI compilation for speed enhancements, Static assets and LESS pre compilation phases. Require JS and JS merging and versioning.

 

At first site this all feels daunting, No longer can we just FTP files onto a server and expect that the application works. During this presentation I will explore what I consider “Best Practices” in terms of how we manage deployments within Magento 2, What components are required and some steps to follow to get a stable and reliable deployment pipeline setup.

 

Zero downtime deployments are the ideal goal however the generation of all the assets that are required for Magento 2 can take time. Having a separate build server or process is ideal and we can build archives that comprises the entire application and deploy the archive.

Database state adds variables to the deployment process and I will explore what options we have for managing state so that we can easily upgrade and roll back without the need for manual intervention.

Allumez le feu !

Grand Salon 28/10/2016 10:15-11:00

NIVEAU : Tout public

Peu de gens pensent qu’ils ont leur place sur une scène pour parler aux autres. Je le sais, car depuis 7 ans que je participe à divers événements en tant que conférencier, beaucoup de personnes m’ont avoué penser qu’elles ne pouvaient pas devenir conférencier, car elles n’ont rien d’intéressant à raconter. Pourtant, je suis convaincu que chacun d’entre nous a une histoire valable à conter aux autres, ne serait-ce que parce que ceux que je suis parvenu à convaincre de cela ont systématiquement été sélectionnés lorsqu’ils se sont décidés à répondre à leur premier «?call for paper?». Arrivé à ce point de votre lecture, vous devez être en train de vous dire que je vais vous fournir la recette magique qui fera de vous un conférencier charismatique capable de transcender une salle et de quitter systématiquement la scène sous une «?standing ovation?». Au risque de vous décevoir, cela ne sera pas le cas car je ne connais pas une telle recette. Je doute d’ailleurs fortement que quiconque sur Terre la connaisse. Par contre, j’ai pour ambition de vous donner suffisamment de clefs, d’astuces et de motivation pour qu’un jour, j’assiste avec un grand plaisir à l’une de vos conférences?! Et j’allais oublier… En prime, je vous expliquerai la raison pour laquelle ma conférence a ce titre à première vue assez peu en rapport avec son thème.

Pattern ADR, PSR-7, actions framework-agnostic et autowiring avec Symfony

Auditorium Lucienne et André Blin 28/10/2016 11:30-12:15

Et si nous repensions la manière de construire nos applications web, et en particulier la couche contrôleur ? Au cours de cette présentation, nous découvrirons le pattern Action-Domain-Responder (ADR), une amélioration de MVC dans le contexte des applications web, et comment en tirer partie pour créer des actions plus simples, réutilisables, testables unitairement, et agnostique du framework. Nous découvrirons comment implémenter ce pattern dans une application Symfony tout en remplissant les objectifs énoncés précédemment grâce à PSR-7, un peu de POO et à la puissance du langage PHP. Finalement je présenterai une nouvelle fonctionnalité du composant d'injection de dépendance de Symfony appelée "services autowiring" : elle permet d'automatiquement trouver et construire les dépendances de nos services grâce à la réflection. Nous verrons que cette fonctionnalité, utilisée en commun avec notre implémentation du pattern ADR et de PSR-7, permet de changer la manière dont nous écrivons nos actions et nos services, d'améliorer notre efficacité et de faciliter le refactoring des applications.

Une donnée presque parfaite

Grand Salon 28/10/2016 11:30-12:15

NIVEAU : tout public

Pour cet épisode, c’est l’équipe Backend qui prépare les données chez 6play.fr. Mais attention, les équipes Frontend (Web, Player, Mobile et IpTv) seront là pour les noter: le contenu des données, sa légèreté, sa fraîcheur, l’attente entre les appels… chaque équipe a ses propres exigences. Sans oublier l’équipe Infra qui attend toujours un service irréprochable, sous peine d’utiliser son droit de véto. Le menu comportera des mets locaux (Php7, Sql, ElasticSearch…) mais proposera aussi des classiques revisités (files d’attentes, workers, dénormalisation des données…). En bonus, vous découvrirez le bêtisier du service, et des recettes à faire à la maison. Bonnes données, et bonne API bien sûr.

Independence day

Auditorium Lucienne et André Blin 28/10/2016 12:15-12:30

NIVEAU : intermédiaire

Aujourd'hui, mener un projet sans outils de gestion de dépendances serait une mauvaise idée. Dans l'écosystème PHP, Composer est devenu un incontournable, et SemVer semble avoir apporté de l'harmonie dans l'anarchie des numéros de version. Mais il y a un revers à tout cela, et je vous propose d'analyser avec vous les conséquences de cette évolution afin d'endiguer une dérive qui risque de nous coûter cher à l'avenir.

Étendre composer

Grand Salon 28/10/2016 12:15-12:30

NIVEAU : débutant

Quatre années que composer a révolutionné le monde de php. Si comme moi vous mettez à jour composer en toute confiance tous les 30 jours vous passez à côté des nouveautés. Quelle est la dernière fois que avez vous fait attention à la sortie de la commande `composer list` ? Vous risquez d’être agréablement surpris·e. Mais dans cette présentation, je vais vous présenter une nouveauté qui n’apparaît pas dans la liste des commandes de composer : les plugins.

CLINIQUE Microsoft "PHP on Steroïd avec Azure"

Salle Moebius 28/10/2016 13:30-13:45

Découvrez comment déployer votre application PHP sur la plateforme Azure pour bénéficier des fonctionnalités avancées comme l’autoscaling, le déploiement continu ou encore les tests en production.

Le déploiement continu de la théorie à la pratique

Salle de commission 28/10/2016 14:00-17:00

ATELIER : D

Dans cet atelier pratique, au lieu de parler théorie de déploiement continu, du cloud, de montée en échelle... nous allons le faire et passer au moins un projet à la modernité.

En 3 heures on va aider un projet .. ou plusieurs à implémenter un processus de déploiement continu sur le cloud (avec plein de jolies intégrations de Github, Gitlab ou Jenkins à Slack ou Hipchat en passant par Microsoft Azure Functions, SendGrid et même Azure Cognitive Services pour le fun). Les participants pourront soit se prêter eux-mêmes à l'exercice... soit suivre l'expérience des braves qui veulent passer du monde ancien au nouveau.

INSCRIPTION OBLIGATOIRE ! C'est par ici

CLINIQUE "Analyser un code source avec PhpMetrics...

Salle Moebius 28/10/2016 14:00-14:15

...pour y tenter de détecter les éventuels points à améliorer"

 

Nous verrons un cas pratique d'utilisation de PhpMetrics pour identifier et repérer les anomalies et défauts de conception d'un code source PHP. A l'issue de cette présentation, vous saurez utiliser PhpMetrics et comprendre les principales métriques fournies par cet outil.

Middlewares : un vieux concept au coeur des nouvelles architectures

Auditorium Lucienne et André Blin 28/10/2016 14:30-15:15

Les middlewares sont présents dans la plupart des languages web autres que PHP. Ils existent aussi dans Symfony et les frameworks qui en dérivent, tels que Laravel ou Silex, même s'ils ne sont pas toujours exploités. Pourtant, depuis PSR-7 les middlewares prennent un coup de jeune et se répandent partout : Zend Framework 3, Zend Expressive, Slim, … Qu'est-ce que les middlewares peuvent apporter à nos applications ? Comment est-ce que PSR-7, et bientôt PSR-15, viennent changer la donne ? Et si on allait plus loin : qu'est-ce qu'une architecture entièrement basée sur les middlewares ?

Peut-on s’affranchir de SonataAdminBundle ?

Grand Salon 28/10/2016 14:30-15:15

NIVEAU : Intermédiaire

Quiconque a eu à mettre en place un back-office dans une application Symfony a forcément croisé SonataAdminBundle. Plébiscité par beaucoup, critiqué par d’autres, une chose est sûre : il est à l’heure actuelle une des alternatives les plus complètes, les plus puissantes et les plus utilisées. Beaucoup se reposent donc dessus pour leur back-office sans plus s’interroger. Mais est-ce toujours la solution idéale ? Loin d’être un sujet troll, cette conférence vise à évoquer les limites mais aussi les points forts du célèbre bundle, pour comprendre quand son utilisation est vraiment bénéfique pour votre application, ainsi qu’à explorer ensemble les différentes alternatives qui s’offrent à nous.

Ecrire du code PHP "framework-agnostic": aujourd'hui et demain

Auditorium Lucienne et André Blin 28/10/2016 15:15-16:00

NIVEAU : de intérmédiaire à expert

Ca y est! Vous l'avez fait, votre première librairie PHP. Vous voulez l'audience la plus large possible? Pas de soucis, il vous suffit de distribuer votre code dans un bundle Symfony, un module Zend, un plugin Drupal, Wordpress, Yii, Laravel... ouch! Dans cette présentation, nous verrons comment écrire du code "framework-agnostic". Ces dernières années, énormément à été fait pour nous aider à atteindre ce but, que ce soit à travers Composer, les PSR-0, PSR-4, PSR-6 et PSR-7 ou encore Puli. Nous verrons surtout comment 2 petits paquets (container-interop/container-interop et container-interop/service-provider) vous permettent d'intégrer votre librairie directement dans n'importe quel framework sans avoir à recoder un module spécifique par framework pour enregistrer vos classes dans le container du framework en écrivant un service-provider unique pour tous ces frameworks. 

Understand your application with metrics

Grand Salon 28/10/2016 15:15-16:00

When your PHP code is running on production servers, you’ve got the new challenge, undestand what exactly is going on. From low-level system data like cpu or network usage, to high-level business indicators like logins, user actions or A/B tests, every piece of information matters. With dedicated engine for time-series data you can show useful dashboards for every team, do capacity planning or even monitor your app with anomaly detection algorithms. In this talk I’ll introduce core concepts for data gathering, stacks for processing metrics from PHP application, based on InfluxDB/Graphite, graph frontends, Twitter OSS libraries for getting even more from observed metrics (anomaly and breakout detection)... During this talk you will learn how to create, manage, identify and use important metrics in your PHP application, to be sure that everything is running as expected and how to use them in case of problems.

Le point sur l'emploi des développeurs

Auditorium Lucienne et André Blin 28/10/2016 16:15-17:15

Levons le voile sur les résultats du baromètre 2016 de l'AFUP - réalisée en partenariat avec Human Coders - et profitons en pour prendre un peu de recul sur la situation des développeurs - et développeuses - PHP en France. Sont-ils mieux ou moins bien payés que dans les autres langages ? Quel est l'impact de la spécialisation sur la rémunération ? Quelle est la part de femmes dans le monde du PHP et comment la faire progresser ? Quelles conclusions peut-on tirer de l'évolution des salaires, sur l'évolution du langage dans les entreprises ?

Nous répondrons à toutes ces questions et à d'autres au cours de cette table ronde. 

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 :