PHPackages                             alphasoft-fr/messenger-filesystem-transport - 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. [Queues &amp; Workers](/categories/queues)
4. /
5. alphasoft-fr/messenger-filesystem-transport

ActiveSymfony-bundle[Queues &amp; Workers](/categories/queues)

alphasoft-fr/messenger-filesystem-transport
===========================================

FilesystemTransport is a transport for Symfony Messenger based on the file system. It allows for handling asynchronous messages without using a database or an external message broker such as RabbitMQ or Redis. This is a simple and lightweight solution, ideal for small to medium-sized projects.

1.1.0(1y ago)093↓50%MITPHPPHP &gt;=7.4

Since Oct 18Pushed 1y ago1 watchersCompare

[ Source](https://github.com/alphasoft-fr/messenger-filesystem-transport)[ Packagist](https://packagist.org/packages/alphasoft-fr/messenger-filesystem-transport)[ RSS](/packages/alphasoft-fr-messenger-filesystem-transport/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (2)Versions (5)Used By (0)

Messenger FilesystemTransport
=============================

[](#messenger-filesystemtransport)

`FilesystemTransport` is a transport for [Symfony Messenger](https://symfony.com/doc/current/messenger.html) based on the file system. It allows for handling asynchronous messages without using a database or an external message broker such as RabbitMQ or Redis. This is a simple and lightweight solution, ideal for small to medium-sized projects.

📖 Documentation
---------------

[](#-documentation)

- [English](#english)
- [Français](#fran%C3%A7ais)

English
-------

[](#english)

---

`FilesystemTransport` is a transport for [Symfony Messenger](https://symfony.com/doc/current/messenger.html) based on the file system. It allows for handling asynchronous messages without using a database or an external message broker such as RabbitMQ or Redis. This is a simple and lightweight solution, ideal for small to medium-sized projects.

📦 Installation
--------------

[](#-installation)

To install the package via [Composer](https://getcomposer.org/), use the following command:

```
composer require alphasoft-fr/messenger-filesystem-transport
```

🚀 Features
----------

[](#-features)

- **File-based message storage**: Stores messages in a local directory for simple and lightweight management.
- **No external dependency**: No need for RabbitMQ, Redis, or a database, reducing infrastructure complexity.
- **Easy to debug**: Messages are stored as JSON files, making it easy to read and understand their content.
- **Suitable for development and testing environments**: Ideal for testing asynchronous tasks in environments where setting up additional services is not justified.

📚 Benefits
----------

[](#-benefits)

- **💡 Simplicity and minimal configuration**: Perfect for small projects where setting up a message broker is overkill. A simple directory is enough to store messages.
- **📂 Portability**: Works on all operating systems that support PHP, making the transport easy to configure and deploy.
- **⚡ Low resource impact**: Avoids database overload (as with `Messenger Doctrine`), which can improve application performance.

🛠️ Configuration
----------------

[](#️-configuration)

### Activating the Bundle

[](#activating-the-bundle)

To activate the bundle, you need to add it manually in the `config/bundles.php` file of your Symfony project:

```
// config/bundles.php

return [
    // ...
    \AlphaSoft\Messenger\FilesystemTransport\AsMessengerFilesystemTransportBundle::class => ['all' => true],
];
```

Here is an example configuration for using `FilesystemTransport` :

```
# config/packages/messenger.yaml
framework:
  messenger:
    failure_transport: failed

    transports:
      filesystem:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages'
          log : false
      failed:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages/failed'
```

In this example, messages will be stored in the `var/messages` directory of your Symfony project.

### Configuration Options

[](#configuration-options)

- **DSN**: The transport configuration is done via the `filesystem://` DSN.
- **Failed message directory**: Failed messages are automatically moved to a `failed/` subdirectory for easier management.

🔧 Usage
-------

[](#-usage)

### Sending Messages

[](#sending-messages)

To send asynchronous messages, you can use the transport like any other Symfony Messenger transport:

```
use Symfony\Component\Messenger\MessageBusInterface;

class NotificationService
{
    private $bus;

    public function __construct(MessageBusInterface $bus)
    {
        $this->bus = $bus;
    }

    public function sendNotification(NotificationMessage $message): void
    {
        $this->bus->dispatch($message);
    }
}
```

📄 Example of Processing Logs
----------------------------

[](#-example-of-processing-logs)

The "log" option must be enabled:

```
# config/packages/messenger.yaml
framework:
  messenger:
    failure_transport: failed

    transports:
      filesystem:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages'
          log : true
      failed:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages/failed'
```

When a message is processed successfully, a log entry is added in `processed.log`:

```
{
    "timestamp": "2024-10-18 14:32:05",
    "message_id": "20241018_143205_123456",
    "message_type": "App\\Message\\NotificationMessage",
    "status": "processed"
}
```

In the event of a failed message, a similar entry is added in `failed.log` to facilitate error tracking and analysis.

🧪 Tests
-------

[](#-tests)

To run unit tests, clone the repository and use [PHPUnit](https://phpunit.de/):

```
git clone https://github.com/alphasoft-fr/messenger-filesystem-transport.git
cd messenger-filesystem-transport
composer install
php vendor/bin/phpunit
```

📝 License
---------

[](#-license)

This project is licensed under the [MIT](LICENSE). You are free to use, modify, and redistribute it under the terms of this license.

🤝 Contribution
--------------

[](#-contribution)

Contributions are welcome! If you want to propose improvements or report an issue, feel free to open an issue or submit a pull request.

1. Fork the project.
2. Create a branch for your feature (`git checkout -b feature/new-feature`).
3. Commit your changes (`git commit -am 'Add new feature'`).
4. Push your branch (`git push origin feature/new-feature`).
5. Open a Pull Request.

---

Français
--------

[](#français)

`FilesystemTransport` est un transport pour [Symfony Messenger](https://symfony.com/doc/current/messenger.html) basé sur le système de fichiers. Il permet de gérer des messages asynchrones sans avoir recours à une base de données ou à un broker de message externe tel que RabbitMQ ou Redis. C'est une solution simple et légère, idéale pour des projets de petite à moyenne envergure.

📦 Installation
--------------

[](#-installation-1)

Pour installer le package via [Composer](https://getcomposer.org/), utilisez la commande suivante :

```
composer require alphasoft-fr/messenger-filesystem-transport
```

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

[](#-fonctionnalités)

- **Stockage des messages en fichiers** : Enregistre les messages dans un répertoire local pour une gestion simple et légère.
- **Pas de dépendance externe** : Pas besoin de RabbitMQ, Redis ou d'une base de données, ce qui réduit la complexité de l'infrastructure.
- **Facile à déboguer** : Les messages sont stockés sous forme de fichiers JSON, ce qui permet de les lire directement et de comprendre leur contenu.
- **Adapté aux environnements de développement et de test** : Idéal pour tester les tâches asynchrones dans des environnements où la mise en place de services supplémentaires n'est pas justifiée.

📚 Avantages
-----------

[](#-avantages)

- **💡 Simplicité et configuration minimale** : Parfait pour les petits projets où la mise en place d'un broker de message est excessive. Un simple répertoire est suffisant pour stocker les messages.
- **📂 Portabilité** : Fonctionne sur tous les systèmes d'exploitation qui supportent le PHP, rendant le transport facile à configurer et à déployer.
- **⚡ Faible impact sur les ressources** : Évite la surcharge de la base de données (comme avec `Messenger Doctrine`), ce qui peut améliorer les performances de l'application.

🛠️ Configuration
----------------

[](#️-configuration-1)

### Activation du Bundle

[](#activation-du-bundle)

Pour activer le bundle, vous devez l'ajouter manuellement dans le fichier `config/bundles.php` de votre projet Symfony :

```
// config/bundles.php

return [
    // ...
    \AlphaSoft\Messenger\FilesystemTransport\AsMessengerFilesystemTransportBundle::class => ['all' => true],
];
```

Voici un exemple de configuration pour utiliser FilesystemTransport :

```
# config/packages/messenger.yaml
framework:
  messenger:
    failure_transport: failed

    transports:
      filesystem:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages'
          log : false
      failed:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages/failed'
```

Dans cet exemple, les messages seront stockés dans le répertoire `var/messages` de votre projet Symfony.

### Options de Configuration

[](#options-de-configuration)

- **DSN** : La configuration du transport se fait via le DSN `filesystem://`
- **Répertoire des messages échoués** : Les messages échoués sont automatiquement déplacés dans un sous-répertoire `failed/` pour faciliter leur gestion.

🔧 Utilisation
-------------

[](#-utilisation)

### Envoi de messages

[](#envoi-de-messages)

Pour envoyer des messages asynchrones, vous pouvez utiliser le transport comme n'importe quel autre transport de Symfony Messenger :

```
use Symfony\Component\Messenger\MessageBusInterface;

class NotificationService
{
    private $bus;

    public function __construct(MessageBusInterface $bus)
    {
        $this->bus = $bus;
    }

    public function sendNotification(NotificationMessage $message): void
    {
        $this->bus->dispatch($message);
    }
}
```

📄 Exemple de Log de Traitement
------------------------------

[](#-exemple-de-log-de-traitement)

L'option "log" doit etre activé :

```
# config/packages/messenger.yaml
framework:
  messenger:
    failure_transport: failed

    transports:
      filesystem:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages'
          log : true
      failed:
        dsn: 'filesystem://'
        options:
          directory: '%kernel.project_dir%/var/messages/failed'
```

Lorsqu'un message est traité avec succès, une entrée de log est ajoutée dans `processed.log` :

```
{
    "timestamp": "2024-10-18 14:32:05",
    "message_id": "20241018_143205_123456",
    "message_type": "App\\Message\\NotificationMessage",
    "status": "processed"
}
```

En cas de message échoué, une entrée similaire est ajoutée dans `failed.log` pour faciliter le suivi et l'analyse des erreurs.

🧪 Tests
-------

[](#-tests-1)

Pour exécuter les tests unitaires, clonez le dépôt et utilisez [PHPUnit](https://phpunit.de/) :

```
git clone https://github.com/alphasoft-fr/messenger-filesystem-transport.git
cd messenger-filesystem-transport
composer install
php vendor/bin/phpunit
```

📝 Licence
---------

[](#-licence)

Ce projet est sous licence [MIT](LICENSE). Vous êtes libre de l'utiliser, de le modifier et de le redistribuer sous les termes de cette licence.

🤝 Contribution
--------------

[](#-contribution-1)

Les contributions sont les bienvenues ! Si vous souhaitez proposer des améliorations ou signaler un problème, n'hésitez pas à ouvrir une issue ou à soumettre une pull request.

1. Forkez le projet.
2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/nouvelle-fonctionnalite`).
3. Commitez vos changements (`git commit -am 'Ajoute une nouvelle fonctionnalité'`).
4. Poussez votre branche (`git push origin feature/nouvelle-fonctionnalite`).
5. Ouvrez une Pull Request.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

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 ~0 days

Total

4

Last Release

571d ago

Major Versions

0.1.2-alpha → 1.0.02024-10-18

### Community

Maintainers

![](https://www.gravatar.com/avatar/16d039ec08222c08df4ce84493c64510bd5ed36587656f21b4f55bb55fecb1b2?d=identicon)[alphasoft-fr](/maintainers/alphasoft-fr)

---

Top Contributors

[![alphasoft-fr](https://avatars.githubusercontent.com/u/97884492?v=4)](https://github.com/alphasoft-fr "alphasoft-fr (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/alphasoft-fr-messenger-filesystem-transport/health.svg)

```
[![Health](https://phpackages.com/badges/alphasoft-fr-messenger-filesystem-transport/health.svg)](https://phpackages.com/packages/alphasoft-fr-messenger-filesystem-transport)
```

###  Alternatives

[symfony/doctrine-messenger

Symfony Doctrine Messenger Bridge

52986.7M156](/packages/symfony-doctrine-messenger)[symfony/amqp-messenger

Symfony AMQP extension Messenger Bridge

29555.6M59](/packages/symfony-amqp-messenger)[symfony/redis-messenger

Symfony Redis extension Messenger Bridge

21846.4M33](/packages/symfony-redis-messenger)[symfony/amazon-sqs-messenger

Symfony Amazon SQS extension Messenger Bridge

4612.5M15](/packages/symfony-amazon-sqs-messenger)[zenstruck/messenger-monitor-bundle

Batteries included UI to monitor your Messenger workers, transports, schedules, and messages.

261561.9k5](/packages/zenstruck-messenger-monitor-bundle)[koco/messenger-kafka

Symfony Messenger Kafka Transport

931.1M1](/packages/koco-messenger-kafka)

PHPackages © 2026

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