Chez Xavier

Home / Retour sur Symfony Live 2009

motobecane.jpg

An old motobecane in the streets of Paris. - see on Flickr.

Logo de Symfony LiveJeudi et vendredi dernier a eu lieu la première édition de Symfony Live, la conférence "à la française" au sujet de Symfony, le leader des frameworks PHP5. Avec près de 200 personnes dans la salle et plus de 20 présentations sur deux jours, l'évènement a été un réel succès. J'ai animé deux sessions : une première le jeudi, au cours de laquelle j'ai présenté la conception d'un réseau social à l'aide de Symfony, puis un autre vendredi, au cours de laquelle j'ai présenté une nouvelle solution de gestion de médias pour Symfony, développée au cours des derniers mois.

La série de conférences a été l'occasion de nombreuses rencontres intéressantes. Je ne citerai pas toutes les personnes avec qui j'ai discuté, par peur d'en oublier, mais ça a été un réel plaisir d'échanger avec vous !

Développer un réseau social avec Symfony, en quelques slides

Ma première présentation a lancé le bal de Symfony Live. Le jeudi matin, à peine réveillé, j'ai ainsi fait le tour de l'approche du développement d'un réseau social avec Symfony :

  • typologie des réseaux sociaux
  • éléments caractéristiques des réseaux sociaux
  • architecture et protocoles utilisés
  • schéma basique de mise en œuvre
  • mise en avant de l'utilisation de plugins

Les slides de cette conférence sont disponibles.

Gérer des médias à l'aide du plugin cleverMediaLibraryPlugin

Après avoir fait un rapide tour des solutions existantes, j'ai présenté vendredi un nouveau plugin, que je vais publier prochainement (lire : vers la fin mois), permettant de manipuler aisément une grande variété de types de médias.

un aperçu du gestionnaire de médias

En vrac, voici les caractéristiques de cette solution :

  • première caractéristique : cette solution est une solution professionnelle de gestion de médias. Son objectif est de répondre à des standards industriels de sécurité, performance et fonctionnalité
  • pour l'instant, c'est basé sur Propel, mais le premier chantier va être une migration sous Doctrine
  • de nombreux types de médias sont supportés : images, vidéos, documents Office et OpenOffice, documents PDF, etc. Par "supportés", j'entends que le plugin est capable de reconnaître efficacement ces types de médias, et pour chacun d'entre eux effectuer des opérations particulières :
    • redimensionnement / taillage d'images,
    • extraction d'une capture de chaque page des documents multipages
    • extraction de la première frame des vidéos,
    • etc
  • recherche des contenus
  • support extensif des métadonnées (EXIF pour l'instant, autres à envisager)
  • gestion des droits
  • les médias sont taggables; il est possible de les rechercher par tags
  • la couche de stockage est abstraite, en faisant appel à un deuxième plugin, présenté conjointement : le cleverFilesystemPlugin. Ce plugin permet de manière transparente l'écriture su différents types de systèmes de fichiers : disque, s3, ftp, etc.
  • chacun de ces deux plugins est aisément extensible : l'ajout d'un type de média ou d'un système de fichiers se fait par un simple ajout de classe.

J'ai eu la bonne surprise de constater que ma présentation a suscité de nombreuses réactions positives. Plusieurs idées d'améliorations m'ont été soumises. Voici déjà celles qui sont envisagées :

  • Migration vers Doctrine,
  • Ajouter une notion de capacities, en fonction des adapteurs fonctionnels,
  • Permettre à l'administrateur de gérer les headers HTTP des médias,
  • Création de différents widgets de formulaires permettant de faire appel aux éléments de la médiathèque.

La chose la plus importante, à mes yeux, est le nombre de réactions qu'a générées cette présentation. Le framework en lui-même est une excellente solution technique, et je pense qu'il est temps de donner plus de consistance à la communauté Symfony en créant des projets annexes, éventuellement sous la forme de groupes de travail en charge du développement de fonctionnalités plus riches. C'est une vraie demande de la communauté, qui outre l'apport de composants fonctionnels efficaces et fiables, permettrait également de promouvoir le choix de Symfony dans un cadre professionnel, face à d'autres solutions à "l'effet démo" plus percutant (et oui, même de grosses bouses techniques passent parfois le premier round des sélections alors que Symfony est recalé).

Les prochaines étapes vont donc être les suivantes :

  • publication des deux plugins, vers la fin du mois,
  • lancement d'un site hébergeant ces plugins et leur documentation, sous la forme d'un projet à part entière,
  • constitution d'une équipe, dans l'objectif de faire évoluer le plugin le plus rapidement possible. Tous les talents sont les bienvenus : graphistes, développeurs, etc.,
  • collecte des idées permettant de rendre le plugin plus intéressant. Toutes ne seront pas acceptées, l'objectif restant de faire de ces plugins les solutions de référence de la gestion de médias avec Symfony.

En attendant, si vous avez une idée de nom approprié pour ce projet, n'hésitez pas à me twitter ! Et pour télécharger les slides de la conférence, les voici : Symfony pour gérer des médias !

Et, comme la demande est forte, je ne résiste pas à l'envie de conclure sur l'image révélation de cette première édition de Symfony Live :

Martine utilise Symfony 1.2