đż Stockage de fichier
- Introduction
- Configuration
- Fonctionnement
- Manipulation des fichiers
- Récupérer le contenu d'un fichier
- Ajouter/Modifier le contenu d'un fichier
- Ajouter du contenu au début ou à la fin d'un fichier
- Supprimer un fichier
- Copier un fichier
- Créer un dossier
- VĂ©rifier si un fichier existe
- VĂ©rifier si le paramĂȘtre est un fichier
- VĂ©rifier si le paramĂȘtre est un dossier
- Obtenir le chemin absolu d'un fichier ou dossier
Introductionâ
Bow Framework intÚgre un systÚme de gestion de fichier permettant de manipuler des fichiers avec une grande simplicité.
Configurationâ
Le fichier de configuration du systĂšme de gestion de fichiers se trouve dans config/resource.php
.
Fonctionnementâ
Vous avez la possibilité d'utiliser les services ou travailler dans votre disque local. Les méthodes statiques mount
et service
permettent reciproquement de manipuler le systĂšme de disque et les services de stockage actuellement ftp
et s3
.
SystĂšme de fichier localâ
Pour gérer votre systÚme de fichier local avec Bow Framework vous allez utiliser la méthode statique mount
.
Explication du conceptâ
Nous appelerons les différents dossiers spécifiés disk
.
Considérons la configuration suivante:
'disk' =>[
'mount' => 'storage',
'path' => [
'storage' => __DIR__.'/../var/app',
'public' => __DIR__.'/../public',
]
];
Vous pouvez spécifier autant de disques que vous voulez.
La classe Storage
expose la méthode statique mount
qui permet la manipulation de fichiers. La valeur passée à mount
doit ĂȘtre un nom de disque valide spĂ©cifiĂ© dans la liste des path
.
use Bow\Storage\Storage;
Storage::mount("public");
// Ou
Storage::mount();
Si la méthode
mount
est appelĂ© sans paramĂȘtre, elle utilisera par dĂ©faut la valeur de la clĂ©mount
.
Vous pouvez aussi utiliser le helper mount()
qui fonctionne exactement de la mĂȘme maniĂšre:
mount('public');
// Ou
mount()->get('app.js');
Les services S3 et FTPâ
Pour utiliser un systÚme de stockage externe. Cela se fait via la méthode service
. Cette méthode, vous permet de séléctionner le type de stockage externe que vous voulez utiliser. Vous trouverez la configuration nécessaire des services dans le fichier de configuration section services
du fichier config/resource.php
.
Exemple avec le service ftp
:
$service = Storage::service('ftp');
$service->get('app.js');
Manipulation des fichiersâ
Cette section décrit les différentes méthodes disponible pour la manipulation de fichiers et leur utilisation.
Supposons que nous avons le fichier app.txt
dans le disque public
:
// contenu du fichier app.txt
Hello, world
Notez que ces méthodes (sauf la méthode
get
) retournent respectivementtrue
oufalse
en cas de succĂšs ou d'Ă©chec
RĂ©cupĂ©rer le contenu d'un fichierâ
La méthode get
sert à recupérer le contenu d'un fichier. Elle prend comme paramÚtre le nom du fichier.
$mount = mount('public');
$content = $mount->get("app.txt");
// Avec un service
$service = Storage::service('ftp');
$content = $service->get("app.txt");
echo $content;
// => Hello, world
service
etmount
utilise la mĂȘme interface de manipulation. Ce qui veux dire que les mĂ©thodes disponibles pourmount
existe aussi pourservice
.
Ajouter/Modifier le contenu d'un fichierâ
La méthode put
permet d'ajouter ou de modifier le contenu d'un fichier:
$mount = mount('public');
$content = 'console.log("Hello, world")';
$mount->put('app.js', $content );
Ajouter du contenu au dĂ©but ou Ă la fin d'un fichierâ
Les méthodes preprend
et append
vous permettent d'ajouter respectivement du contenu au debut ou la fin d'un fichier:
$mount = mount('public');
$mount->prepend('app.txt', 'Contenu ajouté au début');
$mount->append('app.txt', 'Contenu ajouté à la fin');
Supprimer un fichierâ
La méthode delete
permet de supprimer un fichier.
$mount = mount('public');
$mount->delete('app.js');
Copier un fichierâ
$mount = mount('public');
$mount->copy('app.txt', 'sous-dossier/app.txt');
CrĂ©er un dossierâ
Vous pouvez créer un nouveau dossier à l'aide de la méthode makeDirectory
:
Prototypeâ
$mount = mount('public');
$mount->makeDirectory($dirname, $mode = 0777, $recursive = false);
ParamĂštre | Type |
---|---|
path | String - le dossier à créer |
mode | Int - Le mode du dossier par défaut 777 |
recursive | Boolean - Permet de créer récursivement |
$mount = mount('public');
$mount->makeDirectory('dossier');
Notez que vous pouvez changer le mode du dossier et choisir de le créer de maniÚre récursif.
$mount->makeDirectory('chemin/vers/un/dossier', 777, true);
VĂ©rifier si un fichier existeâ
$mount = mount('public');
if ($mount->exists('app.txt')) {
echo $mount->get('app.txt');
}
VĂ©rifier si le paramĂȘtre est un fichierâ
$mount = mount('public');
if ($mount->isFile('app.txt')) {
echo "C'est un fichier";
}
VĂ©rifier si le paramĂȘtre est un dossierâ
$mount = mount('public');
if ($mount->isDirectory('nom_du_dossier')) {
echo "C'est un dossier";
}
Obtenir le chemin absolu d'un fichier ou dossierâ
$mount = mount('public');
$path = $mount->path('app.txt');
echo $path;
// => /chemin/absolu/vers/le/fichier/app.txt
Il manque quelque chose ?
Si vous rencontrez des problÚmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.