· Événements

Des nouvelles du Symfony Live Paris 2012

Les 7 & 8 Juin 2012 avait lieu la conférence annuelle des développeurs Symfony à la Cité Universitaire de Paris : le Symfony Live 2012. Bien évidemment, certains de nos consultants étaient présents pour assister à cette conférence devenue une référence dans l’écosystème PHP. Voici ce qu’ils ont retenu …

Introduction Keynote

par Fabien Potencier

Comme tout évènement qui se respecte, le Symfony Live 2012 s’est ouvert sur une keynote, exercice de style rendu célèbre par Steve Jobs chez Apple. Présentée par Fabien Potencier et basée sur le même type de schéma, elle s’est focalisé sur les partenaires et la communauté, qui sont le poumon du framework.

Après quelques chiffres concernant la communauté Symfony (nombre de contributeurs, statistiques Github, …), et un bref état des lieux de l’intégration de Symfony2 à Drupal8, 2 grandes nouveautés ont été dévoilées. D’une part des améliorations sur les pages projets et users du SensioLabs Connect (sorte de réseau social centré sur la communauté), et la mise à disposition d’une API pour les développeurs. D’autre part la création d’une certification Symfony officielle sensée donner plus de crédit aux développeurs certifiés.

How we built the new responsive “BBC News” site

par John Cleveley

https://speakerdeck.com/u/jcleveley/p/how-we-built-the-new-responsive-bbc-news-site

Conférence très peu orientée Symfony, elle présente le projet de refonte du site bbc.co.uk. Le site à été conçu pour prendre en compte la très grande diversité des appareils connectés capables de surfer sur le web aujourd’hui. Concevoir son site en pensant aux mobiles uniquement n’est plus suffisent à l’heure où les télévisions, les lecteurs MP3, les frigos … sont connectés. Et quand bien même on ne s’intéresserait qu’au mobile, la multitude des tailles d’écrans, navigateurs et capacités des navigateurs rend l’exercice bien trop complexe pour réfléchir en terme de “device”. La stratégie employée par la BBC est donc une approche extrême du progressive enhancement : on sert à tous le monde un site très simple, rapide à charger, avec seulement le contenu important. Ensuite, via Javascript, les capacités du navigateur sont détectées. Les images en grande taille remplace alors les miniatures, les contenus additionnels (pubs, météo, slideshow…) sont chargés et les CSS sont adaptés.

Plus de détection du User-Agent à faire (même via Wurlf, c’est loin d’être facile, et les nouveaux terminaux ne sont pas décelés immédiatement), beaucoup moins de maintenance (le site “mobile” et le site complets ne sont en fin de compte qu’un seul et même site) et des visiteurs comblés, c’est un pari réussi et une source d’inspiration pour nos futurs projets.

What do I get from the full stack framework ?

par Richard Miller

https://speakerdeck.com/u/richardmiller/p/what-do-i-get-from-the-full-stack-framework

Parce qu’il est autonome dans son mode de développement en proposant tout ce qu’il faut pour faire une application web, Symfony est un framework MVC dit “full stack”. En prenant l’exemple du bundle d’intégration d’Eslastic Search à Symfony2, ou celui relatif à la gestion des Assetic, Richard Miller a abordé les avantages d’utiliser un framework tel que Symfony2. Ces bundles, ou briques applicatives, permettent de s’affranchir des tâches répétitives. Ils permettent d’implémenter rapidement (avec un minimum de configuration) des fonctionnalités. Nous nous retrouvons alors à travailler avec des concepts que nous connaissons (fichiers de configuration, conteneur de services, …), et nous pouvons concentrer notre action sur les règles métiers qui régissent l’application développée.

What mom never told you about bundle configurations

par Dennis Benkert

http://www.slideshare.net/denderello/what-mom-never-told-you-about-bundle-configurations-symfony-live-paris-2012

Un bundle Symfony2, qu’est-ce que c’est ? Un ensemble de fichiers et de répertoires qui renferment une ou plusieurs fonctionnalités. Parce que les bundles sont le coeur de toute application Symfony, ils se doivent d’être parfaitement organisés.

A partir d’exemples précis, Dennis explique les bases de la configuration d’un bundle grâce à l’utilisation d’un des composants du framework, le Config Component. Comment repérer et charger ses fichiers de configuration ? Comment les organiser ? Comment faire en sorte de charger uniquement les fichiers requis lors de telle ou telle action ? Et surtout quelle est la marche à suivre pour valider correctement les fichiers de configuration afin d’éviter tout problème de réutilisabilité et evolutivité de son bundle ? Voici autant de questions posées lors de cette conférence très réussie.

Dependency Management with Composer

par Nils Adermann & Jordi Boggiano

http://slides.seld.be/?file=2012-06-07+Dependency+Management+with+Composer.html

Vous avez déjà eu des soucis avec PEAR (qui est une manière de gérer des bibliothèques dans un projet PHP) ? Alors Composer est fait pour vous.

Disponible en version Alpha (Bêta prévue en juin, Final Release en Septembre), Composer est constitué de 3 briques :

  • Composer : c’est l’outil principal de cette suite qui permet de gérer les dépendances ;
  • Packagist : sorte de dépôt qui recense la grande majorité des packages PHP ;
  • Satis : permet de construire son propre dépôt afin d’y stocker des packages propriétaires (au sein d’une entreprise par exemple).

Retenez bien ce nom, car à partir de la version 2.1 de Symfony, Composer sera la manière officielle de gérer les dépendances dans un projet. Nul doute que sa puissance va faire de lui un standard sur de nombreux projets et frameworks.

Advanced Silex

par Igor Wiedler

https://speakerdeck.com/u/igorw/p/advanced-silex-sflive2012

Silex, Kézaco ? Pour ceux qui ne connaissent, Silex est un micro framework PHP basé sur certains composants de Symfony2, et Igor Wiedler est l’un des deux lead developer. Dans cette conférence, pas question de rappeler les bases du micro framework, mais plutôt d’entrer un peu plus dans le coeur de l’outil. Prenant comme exemple une application toute simple – une sorte de pastebin – Igor en a profité pour présenter la manière la plus effective de travailler sur un projet Silex. Tout y passe, Composer, organisation des fichiers et du code source (Séparation des actions et de la logique, …), tests unitaires et fonctionnels, et intégration continue.

Code de l’application présentée sur GitHub

Symfony2 components to the rescue of your PHP projects

par Xavier Lacot

https://speakerdeck.com/u/xavierlacot/p/symfony2-components-to-the-rescue-of-your-php-projects

En plus d’être présent comme simple conférencier lors de ce Symfony Live 2012, Xavier Lacot est également le président de l’AFUP, l’Association Française des Utilisateurs de PHP. Il en a donc profité pour faire un bref état des lieux de PHP (PHP 5.3, présentation succincte de PHP5.4) et de son écosystème (Symfony, Composer, trending projects Github, …).

Il a ensuite pris le temps de détailler la marche à suivre pour mettre à jour d’anciens projets PHP, afin d’en faire de solides projets professionnels et stables sur le long terme. HttpFoundation, DependencyInjection, et ClassLoader sont quelques uns des composants Symfony2 à adopter en priorité lors de la mise à niveau de vos projets PHP.

Designing HTTP Interfaces and RESTful Web Services

par David Zülke

https://speakerdeck.com/u/dzuelke/p/designing-http-interfaces-and-restful-web-services-sfliveparis2012-2012-06-08

Le deuxième jour, nous avons droit a une keynote où David Zülke explique ce que sont les services web REST et RESTful et quel est leur intérêt. Au travers d’exemples concrets tels que l’API Twitter, il a présenté les bonnes pratiques en terme d’organisation des URL des services web. Puis il a abordé des notions moins connues mais néanmoins obligatoires si l’on souhaite fournir des API RESTful : les formats hypermedia.

Au cours de sa présentation, David a par ailleurs insisté sur l’un des principes fondamentaux d’une API REST, à savoir qu’une et une seule URL doit permettre l’accès à une ressource, ET qu’une URL donnée doit toujours correspondre à la même ressource (exemple http://www.exemple.com/user/12/contacts/ qui permet d’accéder à la liste des contacts de l’utilisateur 12).

Introduction à Propel 2

par William Durand

https://speakerdeck.com/u/willdurand/p/introduction-to-propel2

William Durand nous a présenté Propel2, la future version de l’ORM, et il est particulièrement apte à le faire puisqu’il en est le nouveau lead developer.

Cette nouvelle version se veut une complète refactorisation de Propel 1.6, lui même déjà porté en PSR-0. Contrairement à l’idée que l’on a de Propel, il ne s’agit pas d’un ORM Active Record (enfin presque pas), les concepts de table et l’enregistrement étant séparés.

Différence majeure avec Doctrine 2 (l’autre acteur du marché des ORM PHP) : Propel 2 reste sur de la génération de code et se veut ainsi plus rapide. Il faut également noter que les tables et relations se décrivent toujours en XML. Reste à attendre la très prochaine version alpha afin de se faire notre propre opinion.

There is a bundle for that

par Christophe Coevoet & Lukas Kahwe Smith

http://friendsofsymfony.github.com/slides/there_is_a_bundle_for_that.html

Une session dédiée à un ensemble de bundles susceptible d’être utilisé comme base de départ dans de nombreux projets, et sur de rapides rappels autour de l’utilisation, la participation au développement et la création de ces bundles.

Nos deux présentateurs ont commencé par une brève présentation du site officieux listant les bundles existants, suivie d’une présentation des règles à respecter lors de la création de ceux-ci.

Les bundles présentés :

  • FOSUserBundle et FOSRestBundle pour la gestion des utilisateurs et les services web REST ;
  • JMSSecurityExtraBundle et JMSSerializerBundle pour la sécurité et la serialisation des données ;
  • StofDoctrineExtensionBundle pour étendre les fonctionnalités de Doctrine ;
  • LiipImagineBundle pour la gestion d’images ;
  • KnpMenuBundle pour la génération de menus.

Realtime Web Apps with WebSockets

par Igor Wiedler

https://speakerdeck.com/u/igorw/p/websockets-sflive2012

Peu de nouveautés dans cette conférence orientée websockets, sujet dont on a déjà beaucoup entendu parler depuis plus d’un an avec l’explosion d’HTML5 et de Node.JS. On notera quand même une présentation de l’intégration de Symfony avec le websocket grace à l’usage de Node.JS et de ØMQ pour la communication entre Symfony et Node. En toute fin de conférence il a aussi été abordé la librairie ReactPHP qui pourrais devenir un équivalent à Node.JS pour PHP.

Conclusion

Avec la présence de 650 participants, nous pouvons facilement dire que cette édition 2012 du Symfony Live a été un grand succès. La communauté est aujourd’hui essentielle dans la croissance et la pérennité du framework, et avec l’adoption de plusieurs de ses composants dans des CMS Open Source tels que Drupal ou eZ Publish, nul doute que l’avenir des projets PHP ne se construira pas sans Symfony. Cette présence massive apporte aussi une dimension de rencontres et d’échanges avec des développeurs de tous horizons. Rendez-vous l’année prochaine !