sigbits/php-amqp-client-bundle
A Symfony bundle that integrates the php-amqp client, providing service configuration and convenient dependency injection for publishing and consuming AMQP messages. It streamlines connection setup so Symfony applications can wire AMQP exchanges, queues, and consumers with minimal boilerplate.
TerminusFactoryInterface) and a receiver endpoint abstraction (OpenReceiverEndpoint). That is enough to decide whether to adopt a thin integration layer or keep hand-rolling sigbits/php-amqp-client wiring in your own container configuration.OpenReceiverEndpoint::deliveries() makes first-class delivery iteration available, which is the primitive behind ordered consume → process → ack/nack loops, prefetch/backpressure tuning, and graceful shutdown. If your roadmap includes moving from cron-driven batch jobs to long-lived streaming consumers, this is the enabling API — treat it as a gate on that roadmap item rather than a nice-to-have.TerminusFactoryInterface::modified() lets application code produce AMQP Modified delivery-state outcomes (with failed/undeliverable-here semantics) instead of a blunt reject. That converts "how do we handle poison messages?" from a bespoke design question into a supported configuration decision — relevant to on-call load, SLOs on queue depth, and whether you need a separate DLQ service.PHP ^8.3 and Symfony ^6.4 || ^7.4 || ^8.1 are hard floors. Adopting or upgrading this release is implicitly a decision about your runtime upgrade calendar; it should be sequenced with, not after, the PHP/Symfony upgrade.sigbits/php-amqp-client ^1.4 means one coordinated bump instead of two independent library tracks. Worth folding into the next dependency-hygiene window rather than scheduling separately.Consider it when all of the following hold:
vladimir-yuldashev/laravel-queue-rabbitmq or a direct php-amqplib integration instead.Modified outcome and terminus/receiver endpoint abstractions are AMQP 1.0 concepts; you get little value otherwise.Look elsewhere when:
make ci plus a clean-install check, not a documented compatibility matrix across versions.Also flag two specific traps: the Symfony ^8.1 allowance is ahead of most production estates, so the "supported" range is wider than what your team has realistically validated; and the dev branch alias moving to 0.7-dev means anything pinned to 0.7.x-dev will shift under you.
For executives: A small open-source integration library for our Symfony services has released v0.7.0. It adds two capabilities we would otherwise build ourselves — reliable iteration over incoming messages, and standardised signalling for "this message failed, retry or dead-letter it." It requires PHP 8.3 and current Symfony, so it aligns with our existing upgrade path rather than forcing a new one. Cost is zero in licence terms; the real cost is engineering time to adopt and the risk that a pre-1.0 library changes its API. Recommendation: pilot on one non-critical consumer, do not standardise platform-wide until 1.0.
For engineering: v0.7.0 raises the sigbits/php-amqp-client baseline to ^1.4 and exposes two convenience APIs — OpenReceiverEndpoint::deliveries() for delivery iteration and TerminusFactoryInterface::modified() for constructing AMQP Modified delivery states. No deprecations or removed methods are announced, but this is a 0.x package, so treat the new interfaces as unstable. Constraints: PHP ^8.3, Symfony ^6.4/^7.4/^8.1, client ^1.4. Verification is make ci plus a clean composer require ... :^0.7. Action: bump in a branch, confirm our consumer loop and retry paths behave, and keep the bundle behind an internal adapter so a future breaking minor doesn't reach our domain layer. This is a Symfony bundle — do not propose it for the Laravel services.
How can I help you explore Laravel packages today?