04
FEV

Flysystem - Une API PHP pour gérer de multiples systèmes de fichiers

Publié le 04/02/14 à 07h48 par DJo

Flysystem est une API PHP open source permettant de gérer différents types de systèmes de fichiers (local, FTP, cloud...) à partir d'une seule et même syntaxe.

Flysystem est une API PHP open source permettant de gérer différents types de systèmes de fichiers (local, FTP, cloud...) à partir d'une seule et même syntaxe.

Les fichiers de vos web apps sont de plus en plus déportés sur des services de stockages dans le cloud, sur un FTP distant, dans une dropbox ... Il est alors difficile de manipuler ces fichiers à partir de votre application.

Flysystem est une bibliothèque PHP open source qui vous permettra de manipuler vos fichiers de la même manière qu'ils soient en local ou distants.

Ses objectifs sont les suivants:

  • Disposer d'une API générique pour gérer les principales tâches de manipulation de systèmes de fichiers
  • Disposer d'un retour toujours identique
  • Pouvoir s'intégrer facilement dans les frameworks du marché
  • Pouvoir être mis en cache
  • Emuler des répertoires dans les systèmes qui n'en gèrent pas comme awsS3
  • Support de plugins tiers (adaptateurs...)
  • Rendre simple les tests d'interaction avec le filesystem
  • Support du stream pour les fichiers lourds

Un système d'adaptateur permet de gérer les systèmes de fichiers suivants:

  • Système de fichier local
  • AWS S3
  • Rackspace
  • Dropbox
  • Ftp
  • Sftp
  • Zip
  • WebDAV

Après avoir parametré votre adaptateur, vous pourrez interroger l'une des nombreuses méthodes proposées par Flysystem:

// Ecriture
$filesystem->write('filename.txt', 'contents');

// AJout de données
$filesystem->update('filename.txt', 'new contents');

// Mise à jour 
$filesystem->put('filename.txt', 'contents');

// Lecture
$contents = $filesystem->read('filename.txt');

// Suppression
$exists = $filesystem->has('filename.txt');
$filesystem->delete('filename.txt');

// renommage de fichiers
$filesystem->rename('filename.txt', 'newname.txt');

// Récupération des mimetypes
$mimetype = $filesystem->getMimetype('filename.txt');

// Récupération de timestamp
$timestamp = $filesystem->getTimestamp('filename.txt');

// Récupération du poids des fichiers
$size = $filesystem->getSize('filename.txt');

// Création de répertoires
$filesystem->createDir('nested/directory');

// Suppression de répertoires
$filesystem->deleteDir('path/to/directory');

Niveau performances, la bilbiothèque PHP prévoit un système de cache pour répondre plus rapidement en se couplant à Memcached, Redis, Noop ou en mémoire.

Plutôt pratique non ? Installation dans votre projet via Composer en quelques clics !

 

Site Officiel

Commentaire intelligent ! Prix com' intelligentBaraguiné par maarek_j le 04/02/14 à 15h50
maarek_j via Twitter
A voir aussi le projet Gaufrette du KnpLabs
https://github.com/KnpLabs/Gaufrette

Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Connexion avec Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web