PHP Tour

Le cycle de conférences de l'AFUP

Rejoignez le cycle de conférences de l'AFUP, le PHP Tour ! La deuxième édition de cet événement annuel itinérant aura lieu les 29 et 30 novembre 2012 au Centre de Communication de l'Ouest à Nantes.

Les sessions

Keynote d'ouverture

29/11/2012 09:00 - 09:30
Salle de conférence 1


L’opendata dans tous ses états

29/11/2012 09:30 - 10:15
Salle de conférence 1


l'opendata : qu'est ce que c'est ? d'où cela vient ? a quoi cela sert ? ou en est la France ? Une présentation très généraliste (et classique), mais qui permet d'introduire le concept même de l'opendata.

Déploiement continu d'applications PHP avec Capistrano

29/11/2012 09:30 - 10:15
Salle de conférence 2


Capistrano est un outil de gestion de tâches, optimisé pour le déploiement continu. Bien qu'écrit en Ruby et développé initialement pour les besoins des applications Ruby On Rails, Capistrano est actuellement assez mur pour déployer tout type d'applications Web, dont celles en PHP. Il s'agit peut-être même du meilleur outil disponible pour le faire. Cette présentation propose d'explorer les fonctionnalités qui font de Capistrano un tel outil d'exception pour les déploiements PHP : - Control de tâches distantes via SSH - Gestion du staging et du parallélisme - Déploiements via le VCS (git, svn) ou via rsync - Rollback automatique - Atomisation des tâches - Simplicité de configuration - Le bonus sympathique : une interface web conviviale - Webistrano. Avec Capistrano, il n'y a plus d'excuse pour ne pas déployer son application en production plusieurs fois par semaine.

Communications réseaux et HTTP avec PHP

29/11/2012 10:15 - 11:00
Salle de conférence 1


PHP est le language du web, prévu pour récupérer, traiter et envoyer des données. Ainsi, PHP est capable de communiquer, de parler plusieurs protocoles, dont HTTP. Dans cette session, nous détaillerons les différents moyens offerts au développeur PHP pour implémenter un protocole de communication et d'échange de données, en s'attardant sur celui qui définit le web : HTTP Nous ferons ainsi le tour des extensions et des projets permettant de communiquer au moyen de PHP

"Mais ça marche chez moi !"

29/11/2012 10:15 - 11:00
Salle de conférence 2


Vous entendez souvent cette phrase lors du passage en production, souvent dû à des problèmes de configuration avec son serveur de développement. A l'heure d'aujourd'hui, le cycle de vie d'une application peut être très long, du développement à la production a quoi peuvent nous servir un serveur d'intégration, un serveur de test, un UAT ou encore une pré-production ? Comment automatiser l'installation les dépendances nécessaires, les changements de configurations et les livraisons ? Comment bien fractionner ses développements afin de cibler les fonctionnalités déployées ? A l'aide d'outil de gestion de serveur, de gestionnaire de dépendances, d'organisation de ses branches dans son système de versionning ou encore d'outils de livraison nous vous expliquerons comment répondre à ces problématiques et avoir des environnements robustes et efficaces pour faire des livraisons sans stress. (et sans poney)

Gearman, Les rouages du travail distribué

29/11/2012 11:15 - 12:00
Salle de conférence 1


Scalabalité, performance, interopérabilité, architectures distribuées, voilà des concepts qui ne laissent pas les acteurs de l’informatique indifférents. S’il n’existe aucune solution permettant magiquement d’adresser toute ces problématiques sans effort, il existe des outils qui nativement les prennent en compte. Gearman est l’une de ces solutions. Nous verrons dans cette présentation comment tirer le meilleur parti de Gearman pour qu’il serve votre tranquillité, comment il peut orienter votre architecture en SOA, comment il peut vous aider à répartir la charge et à mieux appréhender la monté en charge, comment il peut participer à la réplication de vos données ou à la distribution intelligente de la charge. En sortant de cette présentation vous ne penserez plus à vos développements comme un bloc unique, mais comme à un ensemble d’acteurs qui collaborent efficacement pour atteindre l’objectif fixé.

Ciel ! Mes données ne sont plus relationnelles

29/11/2012 11:15 - 12:00
Salle de conférence 2


Quand la gestion des données de nos applications web dépasse la simple persistance dans une base de données relationnelle (aka SGBD), l'utilisation de technologies alternatives dites NoSql est nécessaire

Recherche : Lucene/SOLR, ElasticSearch,
GraphDb : Neo4J, FlockDB
Key/Value : MongoDB, Redis, Cassandra, BigTable
Messaging : RabbitMQ, Amazon SNS
Queuing : Gearman, Resque, Zend Job Queue, Amazon SQS
MapReduce : Hadoop, Amazon EMR, MongoDB
Document :CouchDB, Jackrabbit, Lotus Notes, MongoDB

Nous aborderons en détail le scope fonctionnel et le domaine d'application de chaque type, puis plus rapidement les solutions disponibles

Comment transformer des débutants en super-développeurs en un an ?

29/11/2012 11:15 - 12:00
Salle de conférence 3


Aujourd'hui, tout le monde parle de bonnes pratiques à respecter dans le monde informatique et l'on s'attend à ce que les développeurs maitrisent ces méthodes instinctivement. Malheureusement, faute de temps et parfois d'envie, leur adoption n'est pas si facile. Nous proposons ici une méthodologie qui permet d'intégrer en douceur ces pratiques dans le processus de développement sans (trop) réduire la productivité de l'équipe pendant les phases d'apprentissage, et lui permettre à terme de gagner en efficacité.

PHP – à emporter !

29/11/2012 12:00 - 12:45
Salle de conférence 1


The Mobile Revolution has radically changed the technology landscape in a surprisingly small number of years;  The good news is that the opportunities are endless.  The bad – it’s more complicated than ever to deliver great experience for your users across all the different mediums – be them phones, tablets or desktops.  But should it be this way?  Come see how to create great modern apps using Zend Studio 10 and Zend Server 6, an take your PHP to go!

Developing web APIs througth StoryBDD

29/11/2012 12:00 - 12:45
Salle de conférence 2


StoryBDD is getting more popular in PHP world. We will show how to use this modern approach with Behat to develop web APIs.

Interopérabilité : réutilisabilité du code au sein d'un contexte multi-technos

29/11/2012 12:00 - 12:45
Salle de conférence 3


Retours d'expérience sur le centre de services d'un grand groupe de presse d'environ 25 sites dans des technologies PHP variées (eZ Publish, Symfony, Word Press, ...). Le besoin de rationaliser et mutualiser les développements les place de facto en situation de réutilisabilité. Cette présentation montrera par des exemples concrets comment, en s'appuyant sur les principes de conception SOLID, on peut affranchir ses développements du socle technique utilisé sans pour autant renoncer aux fonctionnalités apportées par ce dernier. Ces principes permettent une mutualisation optimale du code et, cerise sur le gâteau, améliore aussi sa testabilité.

Les technologies du BigData au service de l’OpenData

29/11/2012 14:00 - 14:45
Salle de conférence 1


L’entreprise n’a jamais été aussi bien armée qu’aujourd’hui, pour maîtriser son «mix marketing» et pérenniser ainsi, sa croissance économique. L’ouverture des données publiques ou OpenData, conjuguée à la collecte d’informations sur ses clients (réseaux sociaux ; site corporate ; site de vente en ligne etc), lui permet de comprendre le comportement d'achat de ses clients, anticiper certains risques et imaginer de nouveaux services. L'entreprise est-elle bien armée pour analyser et stocker ces données massives ? (BigData). Je vous propose de découvrir comment PHP peut être utilisé au sein d'un cluster Hadoop.

PHPCR: PHP Content Repository - the tree-based NoSQL database standard

29/11/2012 14:00 - 14:45
Salle de conférence 2


PHPCR est une API pour gérer des données non-structuré ainsi que des données structurées et hierarchique. Le content repository offre des APIs pour la géstion des permission, versions, locking, la recherche avec une syntax similaire à SQL. Plusieurs frameworks majeur (Typo3, Drupal, Symfony2, Midgard, Nooku et eZ publish) supportent PHPCR ou sont en discussion s'ils veulent utiliser le standard pour stocker leurs données. PHPCR est la traduction du standard Java JCR vers PHP. En PHP, on a des implementations qui stockend les données dans les base des données relational basé sur doctrine DBAL, avec le midgard2 content repository et avec Jackrabbit, l'implementation de référènce de JCR.

Architecture orientée réseau : services REST et OpenData

29/11/2012 14:45 - 15:30
Salle de conférence 1


Quand une application vieillit on se rend souvent compte que certains choix d'architecture, et en particulier certains couplages, rendent la maintenance très difficile voire impossible. D'un autre côté quand on observe le web à un niveau macro, on voit une gigantesque application de plus de 7 milliards de pages qui continue à évoluer en permanence. S'inspirer de l'architecture faiblement couplée du web, et qui repose sur un protocole simple, HTTP, permet de concevoir des architectures robustes et maintenables pour ses applications : c'est l'architecture REST. Cette présentation a pour but : de définir exactement ce qu'est et ce que n'est pas REST de présenter son fonctionnement de voir comment l'introduire sur ses projets de montrer comment implémenter des services REST avec Symfony2, le FOSRestBundle et comment les tester et pour finir de rêver sur les possibilités que permet REST dans une logique OpenData

Des APIs web robustes grâce au JSON Schema

29/11/2012 14:45 - 15:30
Salle de conférence 2


De part sa simplicité d'utilisation au sein des applications javascript, le JSON est aujourd'hui l'un des formats les plus populaires pour la création d'APIs web. Nous verrons comment rendre ces APIs plus robustes grâce aux JSON Schemas.

Hybridation de bases de données

29/11/2012 14:45 - 15:30
Salle de conférence 3


Ces dernières années ont vu l'apparition des bases de données non relationnelles, aussi nommées noSQL. Malgré des tentatives de remplacement d'un système par un autre, on se rend compte aujourd'hui qu'il est particulièrement pertinent d'utiliser conjointement les bases relationnelles et non relationnelles. À la lumière d'une expérience de plus de deux ans sur des sites à fort trafic, je vais expliquer comment procéder à une telle hybridation, en expliquant ses avantages et ses limites.

Aspect Oriented Programming on PHP

29/11/2012 15:45 - 16:30
Salle de conférence 1


La programmation orienté aspect à longtemps été reléguée au stade expérimental en PHP alors que la pratique se popularisait dans d’autres langages. Cette période est révolue avec l’arrivée d’une extension PHP dédiée à l’AOP. Au delà des limites de la programmation objet, la programmation orientée aspect propose de protéger le code métier des préoccupations transverses (mise en cache, gestion transactionnelle, logs, droits, …). L’objectif de cette conférence est double. Dans un premier temps présenter les concepts et intérêts de la programmation orientée aspect, dont toute base de code, procédurale ou orientée objet, pourra bénéficier. Dans un second temps démontrer que l’usage de l’extension AOP pour PHP est la plus simple et efficace qui soit. L’objectif ultime étant de donner à l’auditoire des centaines d’idées applicables immédiatement, quelles que soient les méthodes de travails actuellement utilisées.

Architecture PHP 3 tier avec Zend en backend de Drupal

29/11/2012 15:45 - 16:30
Salle de conférence 2


Dans le monde PHP, les différents frameworks et CMS coexistent sans trop s’interfacer. Pourtant, tirer parti des points forts de chacun permet de travailler plus efficacement. En partant des forces de Zend et de Drupal, cette présentation explique plusieurs façons de brancher les deux outils (notamment via REST), et analyse les mondes ouverts par ce duo : - La création d’applications (mobile ou TV) branchées sur le duo Zend/Drupal - La ré utilisation du code Zend comme un socle de backend projets - La synchronisation des caches Zend et Drupal - Le problème causé par les transactions distribuées A l’aide de courts extraits de code et de schémas, cette présentation donne les bases d’une architecture 3 tier plus proche de ce qui existe en Java.

Les revues de code ou comment faire fructifier son capital humain

29/11/2012 16:30 - 17:15
Salle de conférence 1


Chaque industrie possède un élément clé dans son modèle économique. Dans l'industrie du développement, le facteur de succès est sans conteste le capital humain. Savoir recruter les meilleurs développeurs est une chose difficile mais les amener à réaliser leur plein potentiel l'est tout autant. En ouvrant le code à d'autres développeurs, les revues de code permettent de rompre l'isolement et de partager les connaissances afin de créer des émulations positives au sein des équipes. Nous verrons les gains qu'on peut attendre de cette pratique, les différentes formes (formelles, itératives, pair programming, etc.) qu'elle peut prendre ainsi que les écueils à éviter pour en tirer pleinement parti.

Gestion de la charge chez Wikimédia

29/11/2012 16:30 - 17:15
Salle de conférence 2


Un état des lieux de l'architecture technique de la fondation Wikimédia.

Comment fait on tourner des sites à fort trafic malgré PHP ?

Au menu : Varnish, Memcached, le Sharding de base de données, le suivi des performances.

Real Life Agile Project

30/11/2012 09:15 - 10:00
Salle de conférence 1


Les méthodes agiles ne sont aujourd'hui (presque) plus à présenter. Mais si la théorie paraît simple et évidente, la toute première mise en œuvre de ces méthodes au sein de votre entreprise risque fort d'être tumultueuse. Outils peu adaptés, clients difficiles, la réalité est légèrement plus compliquée. Comment convaincre un client qui ne jure que par le développement au forfait ? Comment rédiger les contrats ? Quels outils utiliser durant le développement pour maintenir la qualité et répondre au plus juste aux besoins du client ? Comment faire valider par le client le travail effectué ? Après de nombreux projets réalisés au sein de KnpLabs, nous pouvons maintenant partager notre expérience et répondre concrètement à ce genre de questions que beaucoup se posent (trop tard) lors de leur premier projet agile.

Comment tester du code utilisant des services Web ?

30/11/2012 09:15 - 10:00
Salle de conférence 2


Aujourd'hui, les applications que nous développons sont souvent dépendantes de services Web dont nous n'avons pas la maîtrise, aussi bien fonctionnellement que techniquement. En effet, ces services peuvent se révéler être indisponibles à cause d'un problème d'accès au réseau, d'un incident technique chez leurs fournisseurs, de contraintes de sécurité, ou bien encore parce qu'ils ne sont pas encore opérationnels car en cours de développement. De plus, ces services peuvent être également payants et donc avoir un coût d'utilisation, soit en volume, soit à la transaction, très significatif. Dans ces conditions, développer du code reposant sur ces services peut être un vrai challenge, et il peut être encore plus difficile de le tester de manière unitaire. Au cours de cette conférence, nous verrons que atoum, un framework de tests unitaires simple, moderne et intuitif pour PHP ? 5.3, peut répondre à ces deux problèmatiques.

Symfony Content Management Framework

30/11/2012 10:15 - 11:00
Salle de conférence 1


Je vais présenter le Content Management Framework (CMF). C'est une collection des composants afin de faire la gestion de contenu dans les projéts symfony: Doctrine content repository avec traduction et versions, routing avec des données de la bd, système menu et construction des pages. Une idée général de Symfony va vous aider à mieux comprendre cette conférence.

Simplifiez-vous les design patterns avec Symfony

30/11/2012 10:15 - 11:00
Salle de conférence 2


Cette conférence présente deux grands motifs de conception : l'observateur / médiateur et l'injection de dépendance. Ce sujet allie à la fois théorie et pratique. Le composant autonome EventDispatcher de Symfony ainsi que le conteneur d'injection de dépendance Pimple seront mis à l'honneur au travers d'exemples pratiques pertinents.

Patchwork UTF-8 : portabilité unicode et graphèmes clusters

30/11/2012 10:15 - 11:00
Salle de conférence 3


Patchwork UTF-8 est à la fois une couche de portabilité pour manipuler Unicode en PHP dans toutes les situations, et une classe qui reprend l'ensemble quasi complet des fonctions natives de manipulation de chaînes de caractères, améliorées par la gestion d'UTF-8, graphemes clusters compris. Le code peut également servir de source de documentation référençant les problèmes pratiques qui se posent lors de la manipulation d'UTF-8 en PHP: concepts Unicode, algorithmes associés, bugs dans PHP, solutions, etc. C'est ce que je vous propose de vous présenter lors de cette conférence. https://github.com/nicolas-grekas/Patchwork-UTF8

En complément de l'open data, l'opengovernment ou "SmartGov"

30/11/2012 11:15 - 12:00
Salle de conférence 1


 

 

L’open data dans les entreprises, les États, et les administrations n’est qu’une première étape / composante d’un mouvement plus important : l’open gouvernement.
À travers la vision de deux membres fondateurs du collectif Démocratie Ouverte (http://democratieouverte.org/), cette conférence fera un tour d’horizon sur l’emploi des technologies web pour faire avancer le mouvement.
Nous aborderons l’utilisation de PHP pour le développement collaboratif d’une plateforme de consultation politique à l’usage international, et comment vous pouvez participer, à tous niveaux

L’open data dans les entreprises, les États, et les administrations n’est qu’une première étape / composante d’un mouvement plus important : l’open gouvernement.


À travers la vision de deux membres fondateurs du collectif Démocratie Ouverte (http://democratieouverte.org/), cette conférence fera un tour d’horizon sur l’emploi des technologies web pour faire avancer le mouvement.


Nous aborderons l’utilisation de PHP pour le développement collaboratif d’une plateforme de consultation politique à l’usage international, et comment vous pouvez participer, à tous niveaux

Découvrir l'éditeur en ligne de la documentation PHP

30/11/2012 11:15 - 12:00
Salle de conférence 2


L'éditeur en ligne de la documentation PHP permet, via une interface web simple et complète, non seulement d'éditer la documentation PHP mais surtout de la traduire. Accessible à l'adresse https://edit.php.net, l'éditeur permet de s'authentifier avec un compte PHP valide ou en anonyme, permettant ainsi d'éditer n'importe quel fichier de la documentation et de proposer un patch, ou de valider directement sur le serveur SVN la modification suivant le type d'accès. Cette présentation vous fera découvrir un moyen simple et conviviale de participer à PHP en aidant la traduction française à atteindre la perfection !

Comment transformer des débutants en super-développeurs en un an ?

30/11/2012 11:15 - 12:00
Salle de conférence 3


Aujourd'hui, tout le monde parle de bonnes pratiques à respecter dans le monde informatique et l'on s'attend à ce que les développeurs maitrisent ces méthodes instinctivement. Malheureusement, faute de temps et parfois d'envie, leur adoption n'est pas si facile. Nous proposons ici une méthodologie qui permet d'intégrer en douceur ces pratiques dans le processus de développement sans (trop) réduire la productivité de l'équipe pendant les phases d'apprentissage, et lui permettre à terme de gagner en efficacité.

Zend Framework 2 Quick Start

30/11/2012 12:00 - 12:45
Salle de conférence 1


Zend Framework 2 achieved its stable release this autumn, ushering in a new era of the framework. During this session, we'll look at the pillars of ZF2 application development, including the Event Manager, Service Manager, and Module Manager, and give you a taste of how applications can be built from re-usable modules and customized to your needs.

Composer, l'outil moderne de gestion de dépendances pour vos projets PHP

30/11/2012 12:00 - 12:45
Salle de conférence 2


Composer est un outil moderne qui permet de gérer les dépendances de ses projets de manière simple et puissante. Node dispose de son npm, Ruby de son Bundler. Désormais, PHP dispose également d'un outil puissant et efficace pour répondre à ce besoin. Quoi de plus frustrant que d'installer une ressource, qui demande une dépendance, qui a elle même une dépendances, etc… ? Peut être le fait de tenter de mettre à jour une de ces dépendances ? Composer, via un unique fichier JSON, simplifie à l'extreme la gestion des dépendances dans vos projets PHP. A travers cette conférence, je me propose de démystifier cet outil, d'expliquer les bases de son utilisation, et de faire part de mes retours d'expériences sur les cas d'utilisation un peu plus touchy qui peuvent être un frein à son adoption.

Quand eZPublish 5 rencontre Symfony2...

30/11/2012 14:00 - 14:45
Salle de conférence 1


En Juillet 2012, eZ Systems, éditeur d’eZ Publish, annoncait l’adoption de l’intégralité du Framework Symfony2 pour la release de la version 5 de son CMS. Modèle HMVC pour le front-controller, Twig pour son moteur de template, Symfony2 sera partie intégrante de la nouvelle release du CMS, qui n’en oublie pas pour autant la rétro-compatibilité avec sa version 4. Pendant cette conférence, nous ferons le point sur les choix techniques adoptés par la communauté eZ, ainsi que sur les apports d’une telle adoption dans son ecosystème.

L'intégration continue de A à Z sur une application PHP existante

30/11/2012 14:00 - 14:45
Salle de conférence 2


L'intégration continue est un sujet d'actualité depuis quelques années et est de plus en plus adoptée. Mais autant elle peut être facile à mettre en place sur un nouveau projet, autant le faire sur un projet PHP existant présente des défis particuliers. Le but de cette présentation est d'aborder la mise en place d'une intégration continue sur tous les aspects d'un projet web en PHP et Javascript en prenant en compte les difficultés de s'adresser à un existant : - tests unitaires PHP avec PHPUnit - tests unitaires JavaScript avec Jasmine et JSTestDriver - tests fonctionnels avec la librairie Mink de Behat de l'existant et du nouveau code - qualité de code avec phpcs et linters - gestion des problèmes techniques lors du passage de l'ancien au nouveau : session, authentification, variables globales, fixtures, etc. On utilisera en exemple la refonte d'une page web PHP existante vers Symfony2 avec intégration continue sur Jenkins tout le long de la refonte.

Gérer ses environnements de développement avec Vagrant

30/11/2012 14:45 - 15:30
Salle de conférence 1


Gérer un environnement de développement efficace est une tâche plus complexe qu'il n'y paraît à première vue. D'une part parce qu'en réalité nous devons souvent en avoir plusieurs, des projets différents nécessitant généralement des configurations différentes, d'autre part parce que nous travaillons rarement seul sur un projet. Il faut donc trouver un moyen de garder une relative synchronisation entre les environnements des différents développeurs tout en évitant de polluer leurs machines avec des composants trop spécifiques ou incompatibles entre eux. Nous verrons comment Vagrant simplifie cette gestion des environnements de développement. Il s'agit d'un outil basé sur VirtualBox qui permet d'utiliser Puppet ou Chef pour gérer les configurations de machines virtuelles.

Frameworks, un nouveau départ avec FuelPHP

30/11/2012 14:45 - 15:30
Salle de conférence 2


FuelPHP est un jeune framework PHP 5.3, poussé par sa communauté et dont le point de départ est "the best ideas of other frameworks, with a fresh start". Avec cette conférence, nous vous proposons de regarder ce que FuelPHP a retenu des autres frameworks web, les idées nouvelles qu'il apporte et voir pourquoi nous adorons développer avec lui. Est-on face à un futur PHP on Rails ? Cette conférence est l'occasion de se faire une idée et d'en discuter.

Lightning talks

30/11/2012 15:45 - 16:30
Salle de conférence 1


Les lightning-talks seront 7 mini-conférences de 5 minutes chacunes, animés par Christophe Villeneuve.

Retrouvez les interventions :

  • Amaury Bouchard (sur FineFS)
  • Pierre Couzy (sur PHP 5.4 dans Azure)
  • Julien Pauli (sur PHP 5.5)
  • Christophe Villeneuve (sur la manipulation avec attention des URLs courtes)
  • Frédéric Hardy (sur Atoum)
  • Benjamin Clay (sur les 42 protips pour le développeur PHP).
  • Gérald Croës : Domain Driven Design

Table ronde open data

30/11/2012 16:30 - 17:15
Salle de conférence 1


Table ronde open data

Keynote de clôture

30/11/2012 17:15 - 17:30
Salle de conférence 1


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