Symfony pour gأ©rer des mأ©dias - Prenez vos places ... Symfony Live – 11 et 12 juin 2009 4 Clever

  • View
    0

  • Download
    0

Embed Size (px)

Text of Symfony pour gأ©rer des mأ©dias - Prenez vos places ... Symfony Live – 11 et 12 juin 2009...

  • Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Symfony pour gérer des médias Xavier Lacot – Clever Age

  • 2 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Plan de la présentation

     Le besoin, les solutions existantes

     cleverMediaLibraryPlugin  Objectifs

     Fonctionnalités

     Architecture

     Démo

     TODO et Roadmap

  • 3 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Qu'est-ce qu'un réseau social ?

    Gérer des médias : un besoin récurrent,

    des solutions limitées

  • 4 Symfony Live – 11 et 12 juin 2009 Clever 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.

  • 5 Symfony Live – 11 et 12 juin 2009 Clever 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

  • 6 Symfony Live – 11 et 12 juin 2009 Clever 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

  • 7 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Qu'est-ce qu'un réseau social ?cleverMediaLibraryPlugin

  • 8 Symfony Live – 11 et 12 juin 2009 Clever 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

  • 9 Symfony Live – 11 et 12 juin 2009 Clever 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

  • 10 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Schéma

    Abstraction du système de fichiers - cleverFilesystemPlugin

    cleverMediaClasses du modèle

    Image handlerhandlers

    Office handler

    PDF handler

    ...

    GD Adapteradapters

    PUNO Adapter

    ImageMagick

    handler ...

  • 11 Symfony Live – 11 et 12 juin 2009 Clever 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

  • 12 Symfony Live – 11 et 12 juin 2009 Clever 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('');

  • 13 Symfony Live – 11 et 12 juin 2009 Clever 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/

    ftp://michel:p4ssw0rd@localhost:21/ftpserv/

  • 14 Symfony Live – 11 et 12 juin 2009 Clever 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();

  • 15 Symfony Live – 11 et 12 juin 2009 Clever 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();

  • 16 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    tasks

  • 17 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Qu'est-ce qu'un réseau social ?

    Démo

  • 18 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Qu'est-ce qu'un réseau social ?TODO et roadmap

  • 19 Symfony Live – 11 et 12 juin 2009 Clever 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é !

  • 20 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Questions?

  • 21 Symfony Live – 11 et 12 juin 2009 Clever Age | Xavier Lacot

    Nous contacter

    Clever Age :

    Agences :

    Téléphone :

    Web :

    Contact commercial :

    Contact technique :

    37, boulevard des Capucines 75002 Paris

    Lyon, Bordeaux

    +33 1 53 34 66 10

    http://www.clever-age.com/

    commercial@clever-age.com

    technique@clever-age.com

    http://www.clever-age.com/ mailto:commercial@clever-age.com mailto:technique@clever-age.com