![Page 1: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/1.jpg)
Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Symfony pour gérer des médiasXavier Lacot – Clever Age
![Page 2: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/2.jpg)
2 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Plan de la présentation
Le besoin, les solutions existantes
cleverMediaLibraryPlugin Objectifs
Fonctionnalités
Architecture
Démo
TODO et Roadmap
![Page 3: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/3.jpg)
3 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Qu'est-ce qu'un réseau social ?
Gérer des médias : un besoin récurrent,
des solutions limitées
![Page 4: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/4.jpg)
4 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Le besoin
La plupart des sites « de contenu » nécessite d'afficher des images
de plus en plus de médias sur le web
Applications spécifiques : Galeries Partage de photos etc.
![Page 5: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/5.jpg)
5 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Les solutions Symfony (1/2)
sfMediaLibraryPlugin Symfony 1.1 seulement (à la 1.0)
Pas d'API permettant de contrôler les médias
Propel
sfAssetsLibraryPlugin À la 1.0 (pas de forms)
Pas d'API permettant de contrôler les médias
Faible extensibilité (tout est dans les actions)
Fonctionnalités limitées
Propel
![Page 6: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/6.jpg)
6 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Les solutions Symfony (2/2)
pkMediaPlugin Fortement lié à pkContextCMSPlugin
Logique limitée, formats supportés limités
En chantier
sfGallery2Plugin Ah ah : no comment
![Page 7: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/7.jpg)
7 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Qu'est-ce qu'un réseau social ?cleverMediaLibraryPlugin
![Page 8: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/8.jpg)
8 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Objectifs
Solution d'entreprise pour gérer des médias Support d'un grand nombre de formats de fichiers :
Images, vidéos
Documents
etc.
Abstraction du stockage API de gestion programmatique des médias Support de métadonnées Recherche, classement, droits d'accès Performance
![Page 9: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/9.jpg)
9 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Formats de fichiers supportés
Images, au sens large (jpg, gif, png, etc.) Plusieurs adapteurs disponibles :
Outils Imagemagick GD
Documents PDF Documents de type Office
OpenOffice (avec par feu intégré, anéfé)
MS Office
Utilise PUNO (PHP ↔ OpenOffice UNO bridge)
Vidéos Ffmpeg / imagemagick
![Page 10: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/10.jpg)
10 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Schéma
Abstraction du système de fichiers - cleverFilesystemPlugin
cleverMediaClasses du modèle
Imagehandlerhandlers
Officehandler
PDFhandler
...
GDAdapteradapters PUNO
AdapterImageMagick
handler...
![Page 11: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/11.jpg)
11 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Abstraction du stockage cleverFileSystemPlugin (1/3)
Ensemble d'adapteurs Disk
FTP
S3
… contributions bienvenues !
API classique : Statistiques : exists / getSize / isDir / isFile
Opérations de dossiers : mkDir / listDir /
Opérations de fichiers : write / unlink / rename / read / copy
![Page 12: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/12.jpg)
12 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Abstraction du stockage cleverFileSystemPlugin (2/3)
Création du système de fichiers :
$fs = cleverFilesystem::getInstance(array( 'type' => 'disk', 'root' => '/path/to/root', 'cache_dir' => '/tmp'));
// filesystem operations$fs->listDir('');
![Page 13: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/13.jpg)
13 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Abstraction du stockage cleverFileSystemPlugin (3/3)
$fs = cleverFilesystem::getInstance('ftp_michel');
app: cleverFilesystemPlugin: filesystems: ftp_michel: cache_dir: /tmp type: ftp host: localhost username: michel password: p4ssw0rd Port: 21 root: ftpserv
ftp://michel:p4ssw0rd@localhost:21/ftpserv/
![Page 14: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/14.jpg)
14 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Utilisation par API
// retrieve a folder$parent = ccMediaFolderPeer::retrieveByPath('meetings/paris');
// Create a folder$folder = new ccMediaFolder();$fields = array( 'name' => 'Symfony Live 2009', 'created_by' => $this->getUser()->getUserId(), 'updated_by' => $this->getUser()->getUserId() 'parent' => $parent);$folder->update($fields);$folder->save();
![Page 15: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/15.jpg)
15 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Utilisation par API
// retrieve a folder$parent = ccMediaFolderPeer::retrieveByPath('meetings/paris');
// Create a file$image = new ccMedia();$fields = array( 'cc_media_folder' => $folder, 'source' => 'http://lacot.org/image.png', 'filename' => 'new_filename.png', 'updated_by' => $this->getUser()->getUserId(), 'created_by' => $this->getUser()->getUserId());$image->update($fields);$image->save();
![Page 16: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/16.jpg)
16 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
tasks
![Page 17: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/17.jpg)
17 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Qu'est-ce qu'un réseau social ?
Démo
![Page 18: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/18.jpg)
18 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Qu'est-ce qu'un réseau social ?TODO et roadmap
![Page 19: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/19.jpg)
19 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
TODO et feuille de route
Migration vers Doctrine Stabiliser le code Ajouter une notion de « capacities », en fonction des adapteurs fonctionnels
Recherche : à intégrer Améliorer la documentation Permettre à l'administrateur de gérer les headers HTTP des médias
cleverFilesystemPlugin : ajouter des adapteurs Trouver un vrai nom, créer un site, motiver une communauté !
![Page 20: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/20.jpg)
20 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Questions?
![Page 21: Symfony pour gérer des médias - Prenez vos places …...Symfony Live – 11 et 12 juin 2009 4 Clever Age | Xavier Lacot Le besoin La plupart des sites « de contenu » nécessite](https://reader034.vdocuments.pub/reader034/viewer/2022043001/5f7a8181fbde73248c0470da/html5/thumbnails/21.jpg)
21 Symfony Live – 11 et 12 juin 2009Clever Age | Xavier Lacot
Nous contacter
Clever Age :
Agences :
Téléphone :
Web :
Contact commercial :
Contact technique :
37, boulevard des Capucines75002 Paris
Lyon, Bordeaux
+33 1 53 34 66 10
http://www.clever-age.com/