gepur-it/rabbitmq-bundle
gepur-it/rabbitmq-bundle provides RabbitMQ integration for PHP applications, helping you configure connections, publish messages, and consume queues with a clean, framework-friendly setup for reliable messaging.
Architecture fit — poor, unchanged by v5.3.0, with a naming-level mismatch to resolve first. The package is published as a bundle (gepur-it/rabbitmq-bundle), which in PHP convention means a Symfony extension registering services into a Symfony DI container via Extension/CompilerPass. Laravel has no bundle concept; it uses service providers and the Illuminate container. The v5.3.0 release note — "allow php 7.4" — is a composer.json constraint change and communicates nothing about framework support. There is still no evidence of a Laravel service provider, and with 0 dependents and 2 stars there is no ecosystem pressure that would have produced one. Consuming this in a Laravel codebase means we either (a) instantiate the underlying classes manually and hand-wire them, bypassing the bundle's only real value-add, or (b) build a shim service provider ourselves. Either way we absorb the integration work the package was supposed to save us.
Integration feasibility — technically possible, commercially weak, marginally easier to install. The bundle almost certainly wraps php-amqplib/php-amqplib (the near-universal PHP AMQP client) and adds connection-factory/config sugar. That means the useful surface is thin and the underlying library is a commodity we can depend on directly. Nothing here is hard to replicate: a config array, a connection singleton, and reconnect handling is on the order of a few hundred lines. v5.3.0 lowers the PHP floor to 7.4, which can only help Composer resolution in a mixed-version matrix — but our target is modern PHP, so this is a benefit we will never realise, and a relaxed lower bound tells us nothing about whether 8.3/8.4 are exercised. The realistic value of the package remains that of a reference implementation for connection setup, not a dependency.
Technical risk — still high, concentrated in abandonment, but the abandonment story needs restating. The previous assessment characterised this as four years of silence since 2021-04-16. That is now factually out of date: v5.3.0 has shipped. The revised picture is a near-dormant project punctuated by a single-constraint release. That is not the same as revived maintenance, and it does not retire any of the underlying risks:
php-amqplib range moved. If an advisory lands against it, we still cannot consume a fix without forking.composer.json change is not evidence that any PHP/Symfony version matrix is actually exercised. Constraints may still permit installs that have never been run.Key questions before any further work:
Symfony\Component\HttpKernel\Bundle\Bundle subclass vs. Illuminate\Support\Contracts\ServiceProvider.) v5.3.0 does not address this.composer.json now pin for php, symfony/*, and php-amqplib/php-amqplib? Specifically: did v5.3.0 only widen the PHP constraint, or did it also relax Symfony or php-amqplib bounds? Does it install cleanly on our target PHP and Laravel versions, or does the widened floor mask an unresolvable graph at the top end?php-amqplib? This is the single most valuable thing it could contain, and the release tells us nothing about it.Recommendation for the evaluation gate: unchanged. Do not adopt as a dependency. Either use php-amqplib directly behind our own thin abstraction, or — if the need is Laravel job dispatch — evaluate a maintained Laravel queue driver instead. Keep this repo as a reading reference. v5.3.0 is not a reason to reopen the decision; it is a data point that the project is dormant-but-not-dead and still pointed at legacy PHP.
Stack fit. Two distinct paths, and the requirement decides:
dispatch()): do not use this package. Use a maintained Laravel queue driver for RabbitMQ, which integrates with queue:work, Horizon-style supervision, and the failed_jobs table. This package does not speak Laravel's Queue contract, and v5.3.0 does not change that.php-amqplib directly and wrap it in one internal service provider plus a config file. We get version currency and full control for a small, bounded amount of code.Migration path. If the team has already prototyped against this bundle, treat it as a fork, not a dependency:
app/Support/Amqp or a first-party packages/ directory, preserving the license header. Pull the v5.3.0 tag so the snapshot is current.php-amqplib — do not inherit the bundle's pin, which the release note gives us no reason to believe was refreshed.Compatibility. v5.3.0 improves the odds of a clean resolve only at the bottom of the version range, which is not where we live. Verify concretely rather than assuming: run composer why-not against our target PHP, then attempt an install in a throwaway branch and boot the app. Watch for Symfony-version constraints that conflict with Laravel's own symfony/* transitives — still the most likely hard blocker, and still capable of surfacing as an unresolvable dependency graph rather than a runtime error. Also confirm PHP 8.2+ dynamic-property and null-to-non-nullable deprecations, which remain the classic failure signature for 2021-era code that a composer.json edit would not have fixed.
Sequencing.
Maintenance — we own it outright. Adopting means accepting permanent ownership of a dependency with effectively no upstream. Every PHP upgrade, every php-amqplib advisory, every Laravel major becomes our work. v5.3.0 shifts this from "the maintainer is gone" to "the maintainer surfaces occasionally for compatibility housekeeping," which is not the same as a maintenance commitment and does not change the budget line. "It's just a connection wrapper" is true until the first security advisory, at which point it is an incident. The fork-and-own path is only defensible if we accept that the fork is ours, with an owner, a review cadence, and a documented upgrade trigger.
Support. No vendor SLA and — at 2 stars, 0 dependents — effectively no community to search for prior art. Every problem is novel by default. The v5.3.0 release is a weak responsiveness signal: it proves someone can cut a tag, not that a support conversation would be answered or that a bug report would be triaged. Compare against php-amqplib, which has a real issue history, or a maintained queue driver where "how do I handle reconnect on consumer restart" has an answer that isn't "read the code." Factor the debugging time into the business case; for a broker integration it usually exceeds the build cost.
Scaling. The bundle's scope is connection management, so scaling characteristics are inherited from php-amqplib and our own topology decisions rather than from this package. Real constraints to plan for:
prefetch_count deliberately; the default is a common cause of skewed load across workers.--max-jobs-equivalent restart policy is mandatory, not optional.Failure modes. These are the ones that page someone:
composer update. Note that v5.3.0 widens a constraint — the opposite of tightening — so this risk is not reduced by the release.Ramp-up. The code volume is small, so reading it is fast; the real ramp is AMQP fluency — ack/nack semantics, prefetch, exchange types, DLX, confirms. That knowledge is required regardless of package choice, which further erodes the package's value: it saves wiring, not understanding. Plan for one engineer to own broker semantics end to end, document the topology as code, and run a failure-injection exercise (kill a consumer mid-message, drop the connection, publish a poison payload) before the first production consumer goes live. With a dependency whose most recent activity is loosening a PHP version floor, treat the first pilot as a genuine unknown rather than a formality.
How can I help you explore Laravel packages today?