L’année dernière, Simple IT débutait la migration du Site du Zéro sous le framework symfony, un outil php open-source français distribué sous la licence MIT. J’ai rejoint l’entreprise en tant que développeur symfony en juillet 2010, puis j’ai évolué en chef de projet / développeur quelques mois plus tard. Je travaille donc au jour le jour sur le Site du Zéro avec 4 développeurs : Kévin Lysiak, Adrien Jerphagnon, Camille Bouquet et Vincent Paulin. Je m’intéresse de très près à l’évolution du framework symfony vers lequel le Site du Zéro est en train de migrer.
En cinq ans, symfony s’est constitué une forte communauté internationale comme en témoignent les 12064 plugins disponibles pour la première version, ainsi que la liste des contributeurs et l’implication communautaire du projet Symfony2.
Début mars se tenait le Symfony Live Conference, un rendez-vous annuel organisé par Sensio et dédié à symfony. C’était une occasion unique de rencontrer des acteurs majeurs du framework et d’échanger avec sa communauté.
La migration Site du Zéro progressant vers les fonctionnalités centrales et critiques, le lancement de la nouvelle version Symfony2, l’adoption massive du framework ces dernières temps, autant de bonnes raisons qui ont convaincu Simple IT d’assister à l’évènement.
Sensio Framework
Mais qui est Sensio ?
Vous aurez sans doute remarqué la belle faute d’orthographe volontaire dans le nom du framework symfony au lieu de symphony. Il est coutume dans le développement de préfixer les noms de fichiers ou dossiers, souvent pour éviter des conflits de nommage dans un projet.
Le préfixe historique utilisé dans symfony est « sf » (sfUser, sfController). En réalité, ces deux initiales correspondent à Sensio Framework, l’outil qui fut ensuite rebaptisé symfony. Un conseil au recruteur ou candidat : relisez vos annonces ou CV et n’écorchez pas le nom d’une technologie. « 3 ans d’expérience sur symphony », c’est le discrédit garanti.
Sensio est l’entreprise française derrière le framework. Cette entité est scindée en deux pôles :
- Extreme Sensio, une agence de communication récemment distinguée par le titre « d’agence de communication interactive indépendante de l’année ».
- Sensio Labs, une SSII articulée autour de symfony, proposant du développement sur mesure, de l’audit, du support et des formations.
On associe également un nom à ce framework : celui de Fabien Potencier. Fondateur et acteur majeur de l’outil, c’est le PDG de Sensio et le chef d’orchestre de symfony.
Préparation de l’évènement
Démarche d’inscription et droit d’entrée
Découvert l’année dernière, j’étais très enthousiaste à l’idée de renouveler l’expérience en 2011. Néanmoins l’entrée sur les deux jours était facturée 300 €, tarif non négligeable pour un particulier.
Il est fréquent, mais facultatif, qu’une entreprise contribue financièrement à des conférences de ce type. J’ai donc demandé à Simple IT une participation, dès novembre.
Simple IT a répondu très positivement puisqu’elle a entièrement pris à sa charge les frais de l’évènement, considérant que cette démarche s’inscrivait dans le principe de formation continue de ses employés. Un retour encourageant pour tout le pôle développement et une vigie technique privilégiée pour l’entreprise.
Sélectionner les conférences
En plus d’une veille technologique conséquente, il est judicieux d’étudier le planning mais surtout les « speakers ». En effet, même si les thématiques abordées sont alléchantes, les conférenciers sont bien plus pondérables dans le choix d’une conférence. Grâce aux nombreuses ressources en ligne ainsi qu’aux réseaux sociaux professionnels, il est possible de connaître un peu plus l’intervenant :
- Son background, son cursus professionnel, ses technologies maîtrisées. Généralement, une recherche Google, son site personnel ou des réseaux sociaux comme LinkedIn permettent de retracer l’historique du speaker.
- Son autorité de compétences, ses contributions communautaires et projets professionnels notables. Est-il un leader d’opinion sur le sujet présenté ? Les profils de ses followers Twitter, ses dépôts open-source partagés (type Github), les articles sur les blogs techniques ou IT (tel Techcrunch) sont d’excellentes pistes.
- Son charisme. Est-ce sa première conférence ? Est-il pro-actif ou repose-t-il majoritairement sur la diction de ses supports (slides) ? Après une conférence, il est facile de retrouver les slides voire même les podcasts de cette dernière, la prestation du speaker est donc la réelle valeur ajoutée.
L’évènement
L’emplacement exceptionnel
Pendant deux jours, Kévin Lysiak et moi avons troqué les locaux de Simple IT pour l’imposante maison internationale de la cité universitaire de Paris.
Photographie prise par GIRAUD Patrick
Deux salles complètement inégales en terme de capacité et d’infrastructure étaient à disposition :
- D’un côté, l’amphithéâtre principal, d’une capacité de plusieurs centaines de places. Il disposait d’un grand vidéoprojecteur et d’une grosse sono.
- De l’autre, une salle de cours pouvant accueillir moins d’une centaine de personnes où le conférencier devait hurler pour se faire entendre.
C’est un premier regret. Vu le prix d’entrée, j’attendais au minimum un cadre fonctionnel et confortable pour suivre les conférences, ce qui ne fut pas le cas pour la moitié d’entre elles. Pourtant les conférences étaient également réparties en terme d’intérêt.
Symfony2
La grande nouvelle de cette année, c’est l’arrivée de Symfony2, une toute nouvelle version qui reprend la philosophie de la précédente version mais révolutionne totalement le framework. La programmation du sf live 2011 se focalisait logiquement sur la nouvelle mouture de Sensio.
Tout le monde attendait la sortie officielle d’une version stable du framework (programmée par Sensio pour l’évènement). Il a été officiellement annoncé que le projet subissait un retard de quelques semaines. Basé sur des arguments pragmatiques et rassurants, on nous explique que Symfony2 se stabilise, l’équipe de développement préfère « assurer ».
L’ombre de la conférence marketing planait alors fortement sur le meeting. Finalement, malgré quelques présentations fainéantes de l’existant (inutiles si l’on suit attentivement l’évolution de Symfony2), les conférences étaient globalement très intéressantes.
Florilège des conférences
Parmi toute la programmation, je retiendrai essentiellement trois présentations.
The lost art of simplicity par Josh Holmes
La salle principale est complète lorsque l’intervenant Microsoft ouvre le sf live avec sa conférence aux aspects de sermon. Très charismatique, il réveille les participants en leur rappelant les concepts KISS. Tout un symbole puisque Symfony2 est entièrement articulé autour de cette philosophie. Ponctuée d’exemples et de slides humoristiques, sa conférence nous rappelle qu’une majorité de projets n’aboutissent jamais en raison d’une complexité inutile.
Il nous laisse méditer sur quelques citations, dont voici mes préférées que je traduis modestement de l’anglais :
- Quand la pensée est trop faible pour être simplement exprimée, c’est la preuve évidente qu’elle devrait être rejetée, Luc De Clapiers
- La simplicité n’est pas un but, c’est le sous-produit d’une bonne idée et d’attentes modestes, Paul Rand
- Je m’excuse pour la longueur de cette lettre mais je n’ai pas eu le temps de la faire plus courte, Mark Twain
Introducing Assetic: Asset Management for PHP 5.3 par Kris Wallsmith
Le prestigieux release manager de symfony 1.4, nous présente un framework de gestion des ressources embarquées dans une page web (assets). Ces données (images, css, javascript) sont souvent difficiles à gérer correctement de manière dynamique. Assetic, inspiré par webassets en Python, offre une solution rapide et très puissante, centralisant cette gestion dans tous ses aspects : inclusion, optimisation, minification et profiling.
Les slides techniques présentent des extraits de code et illustrent parfaitement les fonctionnalités de l’outil. Assetic bénéficie d’une intégration native dans Symfony2 et d’un support Twig natif. C’est aujourd’hui une des meilleures options pour gérer les assets web en php.
Being dangerous with Twig par Ryan Weaver
Dans le plus pur esprit américain, Ryan Weaver le Twig évangéliste, vante avec dynamisme les mérites du moteur de templates, inspiré par Jinja en Python. Les moteurs de templates PHP ont été très souvent délaissés au profit d’une gestion des vues par PHP lui-même pour diverses raisons techniques. Twig a déjà converti beaucoup d’utilisateurs en corrigeant les principaux défauts des moteurs de templates :
- Une syntaxe très simple reposant sur seulement trois balises
- Une sortie (une vue rendue) entièrement objet, permettant l’héritage de vue
- Un système de filtre simple et extrêmement pertinent
- Une flexibilité permettant d’étendre très facilement le moteur
- Une documentation très abondante
Personnellement très sceptique à l’utilisation des moteurs de templates, je me suis empressé de tester ce dernier après la conférence. J’avoue être totalement séduit par Twig et envisage son utilisation pour d’éventuels projets. Reste encore à observer la progression de la technologie et mesurer son adoption sur du moyen terme.
Bien évidemment, d’autres conférences étaient également dignes d’intérêt :
- La présentation sur le cache HTTP par Fabien Potencier
- Doctrator, une extension de Doctrine2 permettant l’ActiveRecord
- L’excellent Behat, framework de test de comportement, que j’espère détailler dans un prochain billet
Déceptions
Quelques regrets néanmoins, en plus de l’inégalité d’accueil des salles abordée au début du billet, certaines conférences ont été décevantes :
- La conférence Doctrine in the real world du grand J.Wage trop rapide et souffrant de slides techniques illisibles
- La conférence sur la technologie de cache Varnish malheureusement trop technique
- La conférence sur le composant sécurité de Symfony2, un intervenant timide et trop peu d’informations sur un sujet pourtant sensible
Les « unconferences » étaient une excellente idée : des conférences officieuses improvisées par les visiteurs eux-mêmes, sur un format de 10 à 15 min. Pour l’exemple, après avoir abandonné la conférence officielle sur Varnish, je suis tombé par hasard sur l’unconference Varnish proposée simultanément. En moins d’un quart d’heure, l’essentiel des informations ont été abordées : cas de production concrets, possibilités, avantages et inconvénients. Cependant, cette série de conférences était planifiée en parallèle du programme officiel, rendant le choix encore plus ardu.
Le grand final
Le Symfony live s’est achevé par une touche finale très dynamique, l’inauguration de la nouvelle image donnée à Symfony (notez la majuscule, convention pour distinguer Symfony2 de la première version), avec son nouveau logo et son nouveau site.
Le staff de Sensio a également distribué des t-shirts collectors au logo « sf » fluorescent (on est geek ou on ne l’est pas !) :
Qu’est-ce que je retiens de cet évènement pour Simple IT ? D’abord, des développeurs heureux d’avoir pu assister à ce rendez-vous technique privilégié. Ensuite, un spectre de possibilités techniques élargi. Symfony2 est le framework php du moment, il suscite un bon enthousiasme communautaire et voit sa liste de contributeurs s’agrandir exponentiellement. Si vous n’êtes pas un adepte des frameworks, je recommande l’étude Symfony2, ne serait-ce que pour apprendre les standards que ce framework se contraint à respecter.
Le Site du Zéro ne va pas subir une migration sous Symfony2 pour l’instant. Même si cette nouvelle version est très prometteuse, la conférence française « Quid de mes applications symfony 1 ? » de Marc Hugon répondait de manière très pragmatique à la question. Symfony2 est encore en pleine stabilisation, mais son utilisation peut être envisagée pour des nouveaux projets. En revanche pour de l’existant, si le projet n’a pas un besoin de migrer, le passage à Symfony2 n’est pas conseillé.
Il est possible néanmoins de passer progressivement, avec plus ou moins de difficultés, à la version 2. A vos risques et périls.
Hello Ludovic,
Bravo pour cet excellent résumé sur la conférence Symfony Live et le projet symfony. Content d’apprendre que votre migration sous ce framework se passe bien :)
A bientôt sur un prochain sfPot.
Hugo.
Toutes mes félicitations pour ce long billet très instructif et agréable à lire.
Ça m’a permit d’en connaître plus sur ce framework toujours plus célèbre que j’aimerais découvrir prochainement. ;)
Pour ceux que ça intéresse, les vidéos des présentations sont disponibles sur le site de Symfony :
http://symfony.com/videos
J’ai assisté à la journée de formation sur Symfony2 (la veille des conférences) qui était très intéressante ! Merci Hugo, tu es un très bon prof !
@Romain Merci beaucoup :)
Symfony 2 articulé autours de la philosophie KISS ? Cela me semble assez risible quand on voit le template engine TWIG – un exemple parmi tant d’autres que j’ai choisi parce que vous en faites allusion – qui est d’une complexité de conception bien supérieure à ce qu’on a l’habitude de voir chez la « concurrence ».
Alors il y a peut-être une volonté de faire au plus simple pour ce framework (et il l’est effectivement parfois plus que d’autres), mais dans les faits ils sont encore très loin de pouvoir pérorer atteindre cet objectif.
Le fond technique du billet est volontairement limité, sur ce passage, je ciblais Symfony et non ces vendors.
Twig n’est qu’un « driver » de template, même si je suis séduis par le moteur de template, je suis cependant déçu, qu’en plus d’être embarqué, Twig soit le choix par défaut (très long débat sur la mailing-list symfony à ce sujet d’ailleurs). Un pur rendu php devrait être la norme dans un framework PHP, les vendors externes devraient être présentées comme des alternatives.
Néanmoins, comme vous l’avez souligné, le core de Symfony 2 essaye de se rapprocher des concepts KISS. Même si, par sa nature même de framework « fullstack », il ne peut atteindre tous les objectifs de la méthodologie.
Enfin un post technique… Je croyais vraiment qu’il n’y en aurait plus.
Vraiment très intéressant. J’espère qu’on en retrouvera d’autres très bientôt notamment sur comment ça se passe la migration. Simple ? Comment vous avez procédé, etc.
Merci beaucoup !
Très bon post, le cour et/ou tuto sur l’utilisation d’un Framework dans un développement web c’est pour quand? ;)
Un article fort intéressant :)
J’espère que j’aurais l’occasion d’aller assister aux prochaines conférences.
Merci Ludo ;-)
moi j’attend CakePHP v2
very good jon admin. very useful to me tahnxss
very good jon mate. very useful tahnxss