承接 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
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固