JoliMediaBundle, un nouveau bundle de médias pour vos projets Symfony

JoliCode - JoliCodeBlog - 14/11
C'est une petite histoire qui commence au début de l'année lorsque, en relisant un article que nous sommes sur le point de publier sur le blog de JoliCode, je remarque une image dont la qualité graphique est plus

C’est une petite histoire qui commence au début de l’année lorsque, en relisant un article que nous sommes sur le point de publier sur le blog de JoliCode, je remarque une image dont la qualité graphique est plus que douteuse.

« — Quel dommage d’illustrer cet article avec un schéma aux couleurs délavées et aux traits pas franchement nets », voilà ce que je me dis à ce moment-là. Direction l’interface d’administration du site, pour remplacer cette image par une version de meilleure qualité. Et là, surprise : l’image source, employée pour illustrer l’article, est parfaitement nette et éclatante !

C’est le début d’une longue quête qui, de fil en aiguille, a conduit à l’écriture d’un nouveau bundle Symfony de gestion de médias : JoliMediaBundle.

Section intitulée c-est-quoi-exactement-un-gestionnaire-de-mediasC’est quoi exactement, un gestionnaire de médias ?

Au fil des nombreux projets Symfony que nous avons menés au cours des 15 dernières années, nous avons fréquemment été confrontés à la nécessité de mettre en place une médiathèque, un explorateur de fichiers, des fonctionnalités d’upload, ou des problématiques de ce type.

Ce type de besoins apparaît régulièrement dans les projets que nous menons, qu’il s’agisse de sites vitrines, de plateformes eCommerce, ou d’applications métier. En effet, la gestion de contenus multimédias est une composante essentielle de nombreuses applications Web modernes : si mon site présente des articles, il y a de bonnes chances pour que j’aie envie de les illustrer avec des images. Si mon site est une boutique qui vend des produits, il faudra des visuels pour les présenter, etc.

Plus précisément, dans notre cas, la notion de gestion de médias recouvre différents aspects : l’upload, le stockage, l’organisation, la transformation (redimensionnement, recadrage), l’optimisation (compression, changement de format), la diffusion, la sélection et l’association à des entités métier, l’affichage (dans des pages Web), etc.

Passons ces différents aspects en revue :

  • l’upload de médias consiste à proposer aux utilisateurs une expérience agréable pour envoyer des fichiers depuis leur ordinateur ou leur appareil mobile vers le serveur. Cela peut inclure des fonctionnalités telles que le glisser-déposer, la sélection multiple de fichiers, le suivi de la progression de l’upload, et la validation des types et tailles de fichiers ;
  • le stockage des médias implique de décider où et comment les fichiers seront conservés. Cela peut être sur le système de fichiers du serveur ou via un service de stockage en ligne (comme AWS S3, Google Cloud Storage, etc.). Il est important que l’approche choisie soit scalable, sécurisée, et adaptée aux besoins du projet. Par exemple, si le projet doit gérer un très grand volume de médias, le SSD d’un VPS ne sera peut-être pas la solution adaptée. À l’inverse, pour un petit site vitrine, un stockage local peut être suffisant et il est sans doute inutile de complexifier le projet en intégrant un service de stockage en ligne ;
  • l’organisation des médias est cruciale pour permettre aux utilisateurs de retrouver facilement les fichiers dont ils ont besoin. Cela peut inclure la création de dossiers et sous-dossiers, la mise en place d’un système de recherche, voire l’ajout de métadonnées aux médias. L’objectif est de rendre la médiathèque intuitive et efficace, et d’éviter que, par dépit, les utilisateurs ne finissent par stocker tous leurs fichiers dans un seul et même dossier racine (ou qu’ils les perdent dans une arborescence trop complexe et finissent par uploader...
    [Courte citation de 8% de l'article original]
Loading...