Fabien Potencier (Sensio Labs) "Symfony est le premier framework PHP intégré à Microsoft Azure"

L'infrastructure sort en version 2.0. Au programme : une meilleure gestion du cache, la disponibilité de distributions pour faciliter l'installation, et la déclinaison de Symfony en micro framework.

JDN Solutions. Quelles sont les grands axes d'évolution de la version 2.0 de Symfony ?

Fabien Potencier. Symfony 2.0 est une réécriture de la première version du framework PHP. Il y a assez peu de code en commun avec la première version. Mais, les objectifs restent les mêmes : simplifier la vie des développeurs PHP et mettre en place des bonnes pratiques. En termes de performance, nous estimons que Symfony 2.0 qui sera disponible d'ici quelques jours est entre trois et cinq fois plus rapide que la première version. Il prend aussi en compte PHP 5.3 et tout ce qu'apporte cette nouvelle mouture du langage, comme le support des namespace par exemple. Sur ce point, Symfony a pris une longueur d'avance sur Zend dont la date de sortie de la version 2.0 n'est pas encore connue, et qui ne prend donc pas en charge PHP 5.3.


Plus concrètement, pourriez-vous donner des exemples de nouvelles fonctionnalités ?

La première grande évolution porte sur le respect des standards. Le Web a en effet beaucoup évolué depuis le lancement du framework en 2007. Nous avons notamment beaucoup travaillé sur l'implémentation de la spécification HTTP. Le protocole HTTP peut paraître simple, du fait de son caractère plein texte. Mais, le standard compte 170 pages de spécifications. Il apporte notamment de nombreux avantages sur la gestion du cache.

Cette avancée permet par exemple de gérer le cache en s'appuyant sur la couche et les entêtes HTTP. Nous avons créé un revers proxy interne à Symfony qui s'appuie sur cette couche pour gérer le cache. Mais, la standardisation de l'implémentation permet aussi de recourir à des outils de revers proxy tiers, comme Warnish ou Squid. Nous avons également implanté la technologie ESI [ndlr Edge Side Include] qui a été créée par Akamai en 2001. Elle permet d'appliquer des règles sur la gestion de cache, en découpant la page en différentes parties. Ainsi, telle ou telle partie pourra ou non être mise en cache. Les revers proxy avec une approche plus propriétaire ne peuvent pas forcément avoir cette granularité, et ne permettent pas d'utiliser Warnish.

Pour vous donnez une idée du gain obtenu, quand on atteint 100 requêtes par seconde avec un framework à la base, on pourra monter à 200 avec un système de cache propriétaire, et 10 000 avec un outil comme Warnish. Notez qu'un tel travail de standardisation et d'optimisation n'est possible que s'il a été pensé dès la conception du framework. Des CMS, tel Drupal, essaient de prendre cette voie depuis dès années, sans y parvenir.
 

"Il existe désormais des distributions de l'infrastructure PHP Symfony"

Une autre grande évolution réside dans la mise en œuvre d'une logique de distributions. Jusqu'ici, il fallait disposer de bonnes compétences pour installer le framework, créer et paramétrer un projet... Nous proposons désormais des distributions de Symfony qui permettent de déployer l'infrastructure de manière assez simple. Une fois installé, un configurateur en ligne permet de paramétrer la plate-forme, la base de données, le serveur... Il n'est donc plus nécessaire d'avoir un niveau d'ingénieur pour mettre en place Symfony. L'idée est d'ouvrir son utilisation à des développeurs PHP moins expérimentés.

Enfin, nous avons voulu faciliter la création de projets de développement plus tactiques. Dans ce but, nous avons conçu une déclinaison de Symfony sous la forme d'un micro framework. Il s'agit en fait d'une distribution Symfony plus légère et plus facile à utiliser que la version Entreprise en full stack. Grâce à cette mouture, il est possible de développer une application en s'appuyant sur un seul fichier. Il s'agit de répondre aux projets de mini-site ou d'intranet, qui ne font pas appel à un développement en équipe, et qui n'ont pas besoin d'être maintenus dans le temps. Naturellement, le choix de cette solution se fera au détriment d'une certaine souplesse et d'une maintenabilité dans le temps.

Que pensez-vous du Cloud Computing ? Symfony est-il adapté à cette démarche ?

Le Cloud Computing est plus un buzz qu'autre chose. Cela fait très longtemps que l'on fait du Cloud. C'est surtout une façon de structurer l'hébergement autour d'offres plus packagées tirant partie de la virtualisation, comme celles d'Amazon ou de Microsoft. Les sociétés peuvent ainsi profiter de ces infrastructures à moindres coûts.

Nous avons d'ailleurs récemment beaucoup travaillé avec Microsoft pour s'assurer que Symfony tourne sous la plate-forme de Cloud Microsoft Azure. Symfony est désormais compatible avec l'installateur Azure. C'est l'un des premiers framework de développement porté sur Azure, si ce n'est le tout premier. Nous avons créé avec Microsoft dans ce cadre une distribution standard packagée pour cette plate-forme. Elle sera disponible sous peu dans la galerie d'applications Azure. L'idée est de disposer d'une configuration la plus simple possible pour démarrer. Ce travail de collaboration a été lancé il y a un an. C'est une annonce que nous allons faire à l'occasion du Salon Solutions Linux.


Pour quels types de projet Symfony est-il utilisé ?

En général, Symfony est utilisé pour de gros projets, demandant l'intervention de plusieurs développeurs ou pour des applications stratégiques qui impliquent d'être maintenues sur une longue durée. Symfony est utilisé un peu partout dans le monde, mais le framework est très présent en Europe et en Asie. La France est le marché principal. Le site Web officiel en France a accueilli 2,5 millions de visiteurs uniques en 2010.

Symfony est utilisé par le site Dailymotion depuis un an. La direction technique recherchait un framework plus standard que ce qu'elle avait auparavant. Ils sont d'ailleurs déjà sous la version 2.0. C'est également le cas de l'Express Culture qui exploite notamment les nouvelles possibilités de mise en cache HTTP.

Mais, nous comptons également des développements en matière d'intranet basés sur Symfony, notamment des portails d'entreprise, des applications dans le domaine de la formation, ou encore des solutions de gestion. Symfony propose d'ailleurs une brique, Symfony Admin Generator, facilitant les projets d'application de gestion. Il s'agit d'un générateur de code facilitant la création de pages Web liées aux données.


Fabien Potencier est titulaire d'un diplôme d'Ingénieur Civil des Mines de Nancy et un Mastère Entrepreneurs à HEC. En 1998, il a fondé Sensio, une agence interactive centrée sur les technologies Open-Source. Il est également le créateur et le développeur principal du framework Symfony.