PHPackages                             krbe/file-manager-bundle - 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. krbe/file-manager-bundle

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

krbe/file-manager-bundle
========================

File manager bundle for Symfony

1.0.3(9mo ago)0120MITPHPPHP &gt;=8.1

Since Mar 31Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/kevinrolinbe/KrbeFileManager)[ Packagist](https://packagist.org/packages/krbe/file-manager-bundle)[ Docs](https://github.com/kevinrolinbe/KrbeFileManager)[ RSS](/packages/krbe-file-manager-bundle/feed)WikiDiscussions main Synced 1mo ago

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

KrbeFileManager
===============

[](#krbefilemanager)

[English](../en/README.md) | [Français](../fr/README.md)

Bundle Symfony pour la gestion de fichiers. Ce bundle fournit un widget modal intuitif pour la gestion des fichiers dans vos applications Symfony.

À propos
--------

[](#à-propos)

Développeur freelance passionné ([kevinrolin.be](https://kevinrolin.be)), j'ai créé ce module car je ne trouvais pas de solution qui réunissait toutes les fonctionnalités dont j'avais besoin : simplicité d'installation et d'utilisation, gestion des images avec crop et compression (notamment en WebP), et une interface utilisateur intuitive.

Dans ma quête d'une solution optimale, j'ai expérimenté l'utilisation de l'intelligence artificielle pour accélérer le développement et m'assurer d'une base de code propre et maintenable. Ce module est le fruit de cette exploration, combinant les pratiques de développement classiques avec les avantages de l'IA.

Fonctionnalités
---------------

[](#fonctionnalités)

- 🖼️ Gestion des images avec crop intégré
- 📦 Compression automatique des images
- 🌐 Support du format WebP
- 📱 Interface responsive et intuitive
- 🔒 Gestion des quotas par utilisateur/entreprise
- 📁 Organisation flexible des fichiers
- 🎨 Personnalisation complète de l'interface
- 🔄 Support du drag &amp; drop
- 📊 Prévisualisation des images
- 🛠️ Configuration simple et flexible

### Fonctionnalités à venir

[](#fonctionnalités-à-venir)

- 📝 Intégration avec TinyMCE
- ☁️ Compatibilité AWS S3

Dépendances
-----------

[](#dépendances)

- PHP 8.1+
- Symfony 7.0+

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

[](#installation)

```
composer require krbe/file-manager-bundle
```

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

[](#configuration)

1. Ajoutez le bundle dans `config/bundles.php` :

```
return [
    // ...
    Krbe\FileManagerBundle\KrbeFileManagerBundle::class => ['all' => true],
];
```

2. Configurez le bundle dans `config/packages/krbe_file_manager.yaml` :

```
krbe_file_manager:
    required_role: 'ROLE_FILEMANAGER' # vide pour ne pas vérifier de role
    quota_max: -1  # -1 pour illimité, sinon en octets
    max_file_size: 10485760  # 10MB
    allowed_mime_types:
        - image/jpeg
        - image/png
        - image/gif
        - image/webp
        - image/svg+xml
        - application/pdf
        - application/msword
        - application/vnd.openxmlformats-officedocument.wordprocessingml.document
        - application/vnd.ms-excel
        - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
        - text/plain
        - text/csv
        - application/json
        - application/xml
        - text/xml
    image_processing:
        compression_enabled: true
        compression_quality: 80
        create_webp: true
        keep_original: true
    storage:
        type: local
        local:
            path: '%kernel.project_dir%/public/cdn'
        s3:
            key: '%env(AWS_ACCESS_KEY_ID)%'
            secret: '%env(AWS_SECRET_ACCESS_KEY)%'
            region: '%env(AWS_REGION)%'
            bucket: '%env(AWS_BUCKET)%'
            path: ''
```

3. Configurez les services dans `config/services.yaml` :

```
services:
    # Configuration des Resolvers
    Krbe\FileManagerBundle\Resolver\UploadPathResolverInterface:
        class: App\Resolver\CompanyUploadPathResolver
        arguments:
            $security: '@security.helper'
            $projectDir: '%kernel.project_dir%'

    Krbe\FileManagerBundle\Resolver\QuotaResolverInterface:
        class: App\Resolver\UserQuotaResolver
```

4. Ajoutez les variables d'environnement dans votre `.env` :

```
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_REGION=your_region
AWS_BUCKET=your_bucket
```

### Les Resolvers

[](#les-resolvers)

Le bundle utilise deux interfaces de Resolver pour personnaliser le comportement :

#### UploadPathResolverInterface

[](#uploadpathresolverinterface)

Cette interface permet de personnaliser le chemin de stockage des fichiers. Par exemple, pour organiser les fichiers par entreprise :

```
namespace App\Resolver;

use Krbe\FileManagerBundle\Resolver\UploadPathResolverInterface;
use Symfony\Component\Security\Http\Attribute\IsGranted;

class CompanyUploadPathResolver implements UploadPathResolverInterface
{
    public function __construct(
        private Security $security,
        private string $projectDir
    ) {}

    public function resolve(): string
    {
        $user = $this->security->getUser();
        return sprintf('companies/%s', $user->getCompany()->getId());
    }
}
```

#### QuotaResolverInterface

[](#quotaresolverinterface)

Cette interface permet de définir des quotas personnalisés par utilisateur ou par entreprise :

```
namespace App\Resolver;

use Krbe\FileManagerBundle\Resolver\QuotaResolverInterface;

class UserQuotaResolver implements QuotaResolverInterface
{
    public function resolve(): int
    {
        // Retourne le quota en octets
        return 100 * 1024 * 1024; // 100MB
    }
}
```

Utilisation
-----------

[](#utilisation)

### Intégration du Widget Modal

[](#intégration-du-widget-modal)

1. Ajoutez le widget dans votre template Twig :

```
{# templates/your_template.html.twig #}
{{ render(controller('Krbe\\FileManagerBundle\\Controller\\FileManagerController::widgetModal')) }}
```

2. Activez le FileManager sur vos champs de formulaire :

```

```

### Accès Direct au FileManager

[](#accès-direct-au-filemanager)

Vous pouvez également accéder directement au FileManager via les routes suivantes :

- `GET /file-manager` : Interface principale du FileManager
- `POST /api/files/upload` : Upload de fichiers
- `GET /api/files/{filename}` : Téléchargement de fichiers
- `DELETE /api/files/{filename}` : Suppression de fichiers

### Personnalisation de la Configuration

[](#personnalisation-de-la-configuration)

#### Configuration JavaScript

[](#configuration-javascript)

Vous pouvez personnaliser l'apparence et le comportement du FileManager en configurant les options JavaScript. Il y a deux façons de le faire :

1. **Avant le chargement du script** :

```

    window.KrbeFileManagerConfig = {
        inputText: 'Sélectionner un fichier',
        buttonSelectText: 'Parcourir',
        buttonResetText: 'Effacer',
        // ... autres options
    };

```

2. **Après le chargement du script** :

```
KrbeFileManager.setConfig({
    inputText: 'Sélectionner un fichier',
    buttonSelectText: 'Parcourir',
    buttonResetText: 'Effacer',
    // ... autres options
});
```

Les options disponibles sont :

- `wrapperClass` : classe du conteneur principal (défaut: 'krbe-filemanager-wrapper')
- `inputAttribute` : attribut pour identifier les inputs (défaut: 'data-krbe-filemanager')
- `inputText` : texte du placeholder de l'input (défaut: 'Choisir un fichier')
- `inputClass` : classe de l'input (défaut: 'krbe-filemanager-input')
- `buttonSelectText` : texte du bouton de sélection (défaut: 'Choisir un fichier')
- `buttonSelectClass` : classe du bouton de sélection (défaut: 'krbe-filemanager-select-btn')
- `buttonResetText` : texte du bouton de réinitialisation (défaut: 'Réinitialiser')
- `buttonResetClass` : classe du bouton de réinitialisation (défaut: 'krbe-filemanager-reset-btn')
- `previewClass` : classe du conteneur de prévisualisation (défaut: 'krbe-filemanager-preview')

La configuration se fait de manière non destructive, seules les propriétés que vous spécifiez seront modifiées, les autres conserveront leurs valeurs par défaut.

Licence
-------

[](#licence)

MIT

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance56

Moderate activity, may be stable

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 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

Every ~39 days

Total

4

Last Release

294d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5cd90941b833ee4f70c6e98b879a46ee3a5a813fc4efc9d1d1749899dafe2cad?d=identicon)[kevinrolinbe](/maintainers/kevinrolinbe)

---

Top Contributors

[![kevinrolinbe](https://avatars.githubusercontent.com/u/28598349?v=4)](https://github.com/kevinrolinbe "kevinrolinbe (12 commits)")

---

Tags

symfonyfile manager

### Embed Badge

![Health badge](/badges/krbe-file-manager-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/krbe-file-manager-bundle/health.svg)](https://phpackages.com/packages/krbe-file-manager-bundle)
```

###  Alternatives

[artgris/filemanager-bundle

FileManager is a simple Multilingual File Manager Bundle for Symfony

182420.8k9](/packages/artgris-filemanager-bundle)[helios-ag/fm-elfinder-bundle

ElFinder bundle, adds ElFinder file manager to your Symfony project

2814.8M27](/packages/helios-ag-fm-elfinder-bundle)[platinumpixs/aws-symfony2-bundle

A simple Symfony 2 bundle for including the AWS SDK for PHP.

1274.3k1](/packages/platinumpixs-aws-symfony2-bundle)[ranky/media-bundle

A complete and friendly media file manager for Symfony

681.3k](/packages/ranky-media-bundle)

PHPackages © 2026

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