Transcript
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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/

[email protected]

[email protected]


Recommended