定制 cocoon-projet/storage 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

cocoon-projet/storage

最新稳定版本:0.0.1

Composer 安装命令:

composer require cocoon-projet/storage

包简介

Gestion des fichiers et répertoires

README 文档

README

PHP Composer codecov License

Cocoon Storage Manager

Une bibliothèque PHP moderne et puissante pour la gestion des fichiers, basée sur Flysystem.

Pré-requis

PHP Version

Installation

composer require cocoon-projet/storage

Configuration

use Cocoon\StorageManager\Storage;
use Cocoon\StorageManager\StorageConfig;

// Configuration simple
$config = new StorageConfig('/chemin/vers/le/dossier');

// Configuration avancée
$config = new StorageConfig('/chemin/vers/le/dossier', [
    'visibility' => 'public',        // Visibilité des fichiers (public/private)
    'directory_visibility' => 'public', // Visibilité des répertoires
    'case_sensitive' => true,        // Sensibilité à la casse
]);

// Initialisation
Storage::init($config);

Fonctionnalités

Gestion des fichiers

// Écrire un fichier
Storage::put('fichier.txt', 'Contenu');

// Lire un fichier
$contenu = Storage::get('fichier.txt');

// Vérifier l'existence
if (Storage::exists('fichier.txt')) {
    // ...
}

// Supprimer un fichier
Storage::delete('fichier.txt');

// Copier un fichier
Storage::copy('source.txt', 'destination.txt');

// Déplacer un fichier
Storage::move('ancien.txt', 'nouveau.txt');

Gestion des répertoires

// Créer un répertoire
Storage::mkdir('mon-dossier');

// Supprimer un répertoire
Storage::rmdir('mon-dossier');

Recherche de fichiers

Recherche dans un dossier spécifique

// Rechercher dans un dossier spécifique
$fichiers = Storage::find()
    ->in('mon-dossier')
    ->files()
    ->get();

// Rechercher dans plusieurs dossiers
$fichiers = Storage::find()
    ->in(['dossier1', 'dossier2'])
    ->files()
    ->get();

Filtres de recherche

// Rechercher tous les fichiers
$fichiers = Storage::find()
    ->files()
    ->get();

// Rechercher tous les répertoires
$repertoires = Storage::find()
    ->directories()
    ->get();

// Filtrer par taille
$petitsFichiers = Storage::find()
    ->in('mon-dossier')
    ->size('< 1MB')
    ->get();

// Filtrer par date
$fichiersRecents = Storage::find()
    ->in('mon-dossier')
    ->date('> 1 day')
    ->get();

// Filtrer par extension
$fichiersTxt = Storage::find()
    ->in('mon-dossier')
    ->only(['*.txt'])
    ->get();

// Exclure des fichiers
$fichiersNonPhp = Storage::find()
    ->in('mon-dossier')
    ->except(['*.php'])
    ->get();

Tri des résultats

// Trier les résultats
$fichiersTries = Storage::find()
    ->in('mon-dossier')
    ->sortByName()          // Trier par nom
    ->sortByDate()          // Trier par date
    ->sortBySize()          // Trier par taille
    ->sortByExtension()     // Trier par extension
    ->get();

Gestion avancée des fichiers

// Obtenir un gestionnaire de fichier
$fichier = Storage::file('mon-fichier.txt');

// Vérifier le type MIME
$type = $fichier->mimeType();

// Obtenir la taille
$taille = $fichier->size();

// Obtenir la date de modification
$date = $fichier->dateTime();

// Obtenir le nom
$nom = $fichier->name();

Fonctionnalités avancées

Filtres de recherche

  • files() : Rechercher uniquement les fichiers
  • directories() : Rechercher uniquement les répertoires
  • in($path) : Rechercher dans un dossier spécifique
  • size() : Filtrer par taille (ex: '< 1MB', '> 100KB')
  • date() : Filtrer par date (ex: '> 1 day', '< 1 week')
  • only() : Inclure uniquement certains fichiers (ex: ['.txt', '.pdf'])
  • except() : Exclure certains fichiers (ex: ['.tmp', '.log'])

Tri des résultats

  • sortByName() : Trier par nom
  • sortByDate() : Trier par date
  • sortBySize() : Trier par taille
  • sortByExtension() : Trier par extension

Exemple complet

use Cocoon\StorageManager\Storage;
use Cocoon\StorageManager\StorageConfig;

// Configuration
$config = new StorageConfig(__DIR__ . '/storage', [
    'visibility' => 'public',
    'directory_visibility' => 'public',
    'case_sensitive' => true,
]);

// Initialisation
Storage::init($config);

// Création de dossiers
Storage::mkdir('documents');
Storage::mkdir('images');
Storage::mkdir('cache');

// Recherche dans des dossiers spécifiques
$fichiersDocuments = Storage::find()
    ->in('documents')
    ->files()
    ->get();

$fichiersCache = Storage::find()
    ->in('cache')
    ->files()
    ->get();

// Recherche avec filtres
$fichiersRecents = Storage::find()
    ->in(['documents', 'images'])
    ->files()
    ->date('> 1 day')
    ->sortByDate()
    ->get();

Bonnes pratiques

  1. Toujours initialiser le stockage avec une configuration appropriée
  2. Utiliser la méthode in() pour limiter la recherche à des dossiers spécifiques
  3. Combiner les filtres pour des recherches plus précises
  4. Gérer les exceptions pour les opérations critiques
  5. Nettoyer les fichiers temporaires après utilisation
  6. Utiliser des chemins relatifs pour la portabilité

Tests

composer test

Licence

MIT License - Voir le fichier LICENSE pour plus de détails.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-02-19