fintem/mq-notification-bundle
fintem/mq-notification-bundle is a PHP package for message-queue-based notification delivery, offering bundle-style configuration to dispatch and route notifications asynchronously through MQ infrastructure in Laravel/PHP applications.
composer require fintem/mq-notification-bundle). The current release is 1.3.0, whose headline change is Support Symfony 4 — so on Symfony 4 you can install it without immediately forking. Check the package's composer.json first: it still pins Symfony 3.4/4.x and PHP 7.x, and there is no Symfony 5+/PHP 8 support. On newer stacks you will still need to fork and bump constraints before you can install it.AppKernel::registerBundles() on Symfony 3.4, config/bundles.php on Symfony 4).README.md — the only place the intended send/receive workflow is described.DependencyInjection/*Extension.php and Configuration.php — this is the actual config tree (AMQP host/port/vhost/credentials, exchange, queue, routing key). Treat this as the source of truth; the README often lags behind.Resources/config/services*.yml — the service IDs and tags you'll inject or subscribe to. Note that 1.3.0's Symfony 4 support means these are still likely explicit YAML definitions, not autowired services — don't assume autoconfiguration.Command/ or Consumer/ classes — that's your worker entry point.config/packages/mq_notification.yaml (Symfony 4) or app/config/config.yml (Symfony 3.4). Keep credentials in env vars, not in the committed config — but verify env resolution works (see Gotchas).NotificationPublisher) so your domain code depends on an interface, not on the bundle.php-amqplib: it gives you the messaging transport and leaves the handling logic to normal Symfony listeners.config/packages/ layout. Service definitions still come from the bundle's YAML, so inject the publisher by ID (or alias it to your own interface) rather than relying on autowiring to discover it.version or type field) so a new producer can't crash an old consumer mid‑deploy.--time-limit/--memory-limit style restart if the bundle's command supports it. Never consume in a web request.ContainerAware, YAML service definitions without autowiring, string event names). Expect friction upgrading. The AMQP layer itself is the valuable part; the Symfony glue is easy to rewrite if needed.composer.json after upgrading — the Symfony constraints moved, and a transitive bump can change which minor you resolve to. Lock it deliberately.amqp PHP extension or uses php-amqplib. They have different failure modes and packaging implications for your base image.serialize, JSON, etc.), producer and consumer must agree. PHP serialize is brittle across class changes — prefer JSON with explicit DTOs if you can override the serializer. The serializer is usually the cleanest extension point: swap it for your own service to control the payload shape.%env()% may not work as expected) and clear the cache after every config change — especially important on Symfony 4, where the compiled container is aggressive about caching.How can I help you explore Laravel packages today?