An old motobecane in the streets of Paris. - see on Flickr.
Jeudi 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 :
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.
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 :