pogo / symfony-queue
FrankenPHP Queue Driver for Symfony Messenger
0.0.10
2026-05-20 15:38 UTC
Requires
- php: >=8.5
- symfony/config: ^8.0
- symfony/dependency-injection: ^8.0
- symfony/http-kernel: ^8.0
- symfony/messenger: ^8.0
Conflicts
- symfony/framework-bundle: <8.0
This package is auto-updated.
Last update: 2026-05-20 15:38:40 UTC
README
Symfony Messenger transport for the FrankenPHP Queue v2 module.
The transport expects a FrankenPHP binary compiled with pogo_queue and a
production backend redis Caddy configuration. Messages are delivered at least
once, so handlers must be idempotent.
Installation
composer require pogo/symfony-queue
The bundle registers the Messenger transport factory automatically.
Configuration
framework: messenger: transports: pogo: 'pogo-queue://default' routing: 'App\Message\YourMessage': pogo
Delayed messages are supported through Symfony's normal DelayStamp.
Worker
Run Messenger from a FrankenPHP worker entrypoint:
<?php use App\Kernel; use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Component\Console\Input\ArrayInput; require_once __DIR__ . '/../vendor/autoload_runtime.php'; return static function (array $context) { $kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); $app = new Application($kernel); $app->setDefaultCommand('messenger:consume', true); $app->run(new ArrayInput([ 'receivers' => ['pogo'], '--time-limit' => 3600, ])); return $app; };
The transport acknowledges handled messages, fails rejected messages, and records
delivery metadata in PogoReceivedStamp.