PHPackages                             cocoon-projet/storage - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. cocoon-projet/storage

ActiveLibrary[File &amp; Storage](/categories/file-storage)

cocoon-projet/storage
=====================

Gestion des fichiers et répertoires

0.0.1(1y ago)00MITPHPPHP ^8.0CI failing

Since Feb 21Pushed 1y ago1 watchersCompare

[ Source](https://github.com/cocoon-projet/storage)[ Packagist](https://packagist.org/packages/cocoon-projet/storage)[ RSS](/packages/cocoon-projet-storage/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (6)Versions (2)Used By (0)

[![PHP Composer](https://github.com/cocoon-projet/storage/actions/workflows/ci.yml/badge.svg)](https://github.com/cocoon-projet/collection/actions/workflows/ci.yml) [![codecov](https://camo.githubusercontent.com/98eb493800a0ec351b52a2cc15aff86b16df73e53906daba7b102b1c477dd24f/68747470733a2f2f636f6465636f762e696f2f67682f636f636f6f6e2d70726f6a65742f73746f726167652f67726170682f62616467652e7376673f746f6b656e3d305237485737414d5837)](https://codecov.io/gh/cocoon-projet/storage) [![License](https://camo.githubusercontent.com/bbd05f341c8cc2fef766a381c121830e990070db1c11179202f86be4fbfae318/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e63652d4d49542d677265656e)](https://camo.githubusercontent.com/bbd05f341c8cc2fef766a381c121830e990070db1c11179202f86be4fbfae318/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e63652d4d49542d677265656e)

Cocoon Storage Manager
======================

[](#cocoon-storage-manager)

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

Pré-requis
----------

[](#pré-requis)

[![PHP Version](https://camo.githubusercontent.com/37e3195032b5c7e4be284eb0942ffe75d7962d9b7aa77fe10ffb7e063392b4c4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068703a76657273696f6e2d382e302d626c7565)](https://camo.githubusercontent.com/37e3195032b5c7e4be284eb0942ffe75d7962d9b7aa77fe10ffb7e063392b4c4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068703a76657273696f6e2d382e302d626c7565)

Installation
------------

[](#installation)

```
composer require cocoon-projet/storage
```

Configuration
-------------

[](#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
---------------

[](#fonctionnalités)

### Gestion des fichiers

[](#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

[](#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-de-fichiers)

#### Recherche dans un dossier spécifique

[](#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

[](#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

[](#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

[](#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
------------------------

[](#fonctionnalités-avancées)

### Filtres de recherche

[](#filtres-de-recherche-1)

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

### Tri des résultats

[](#tri-des-résultats-1)

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

Exemple complet
---------------

[](#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
----------------

[](#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
-----

[](#tests)

```
composer test
```

Licence
-------

[](#licence)

MIT License - Voir le fichier [LICENSE](LICENSE) pour plus de détails.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance45

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

451d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5b019cffcdf77ab35448666ea712d4263ae3afd4bc0110de6a267936e3dba08d?d=identicon)[cocoon-projet](/maintainers/cocoon-projet)

---

Top Contributors

[![cocoon-projet](https://avatars.githubusercontent.com/u/28481301?v=4)](https://github.com/cocoon-projet "cocoon-projet (30 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/cocoon-projet-storage/health.svg)

```
[![Health](https://phpackages.com/badges/cocoon-projet-storage/health.svg)](https://phpackages.com/packages/cocoon-projet-storage)
```

###  Alternatives

[league/flysystem-aws-s3-v3

AWS S3 filesystem adapter for Flysystem.

1.6k263.6M790](/packages/league-flysystem-aws-s3-v3)[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.2k3.3M74](/packages/unisharp-laravel-filemanager)[league/flysystem-sftp-v3

SFTP filesystem adapter for Flysystem.

6129.6M91](/packages/league-flysystem-sftp-v3)[yii2-starter-kit/yii2-file-kit

Yii2 file upload and storage kit

151216.8k6](/packages/yii2-starter-kit-yii2-file-kit)[azure-oss/storage-blob-flysystem

Flysystem adapter for Azure Storage PHP

29936.0k10](/packages/azure-oss-storage-blob-flysystem)[bolt/filesystem

Bolt's filesystem abstraction layer

10181.0k4](/packages/bolt-filesystem)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
