- How do I install checkthiscloud/phpamqplib-messenger in a Laravel app?
- Run composer require checkthiscloud/phpamqplib-messenger. The package ships as a Symfony bundle (Jwage\PhpAmqpLibMessengerBundle), so Laravel will not auto-discover it like a service provider. You must register the bundle and its DI extension in your Symfony Messenger bootstrap, and Laravel-specific setup docs are thin. Prototype the wiring in a branch before committing.
- Does this package work with Laravel's native queue API or only Symfony Messenger?
- It is a Symfony Messenger transport, not a Laravel queue driver, so it does not plug into Laravel's Queue facade, queue workers, or failed_jobs table. Use it when your Laravel app already runs Symfony Messenger and its MessageBus and consumers. If you want Laravel-native queues, use a Laravel queue driver package instead.
- What Laravel and PHP versions are supported by this transport?
- The transport depends on symfony/messenger and symfony/dependency-injection 6.4 or later and requires PHP 8.0+. The TPM assessment treats Laravel 8+ as the practical baseline because of those dependency constraints. Composer's platform checks will block installation on incompatible stacks.
- How do I configure the RabbitMQ DSN for this transport?
- Use a DSN such as phpamqplib://guest:guest@localhost:5672/myvhost/orders, where the last path segment names the transport. The bundle creates an exchange and binds a queue with that name inside the given vhost. Configure it under framework.messenger.transports in Symfony-style config; in Laravel you must load that config through your Messenger setup.
- Why use php-amqplib instead of the php-amqp C extension?
- php-amqplib is pure PHP, so you avoid the php-amqp C extension and its PHP-version compatibility issues. It implements asynchronous consumers properly, which can improve throughput for high-volume queues. It also avoids installing or rebuilding a PECL extension in every environment, including CI and containers.
- Will this package conflict with symfony/messenger or symfony/dependency-injection already in my Laravel app?
- Yes, it pulls in symfony/dependency-injection and symfony/messenger 6.4+, which can conflict with existing Symfony packages or custom container bindings in a Laravel app. Pin versions and run composer why-not checks before merging. Projects with custom Messenger service overrides should test carefully.
- Does it support asynchronous consumers and publish confirms?
- The transport uses php-amqplib's asynchronous consumer model, unlike the polling approach associated with the php-amqp extension. Per the assessment, publish confirms and retry logic are enabled by default, which helps with common AMQP failure modes. Benchmarks against your own queue volume are still advised.
- Is this package reliable enough for production use?
- Version 0.11.2 adds Codecov and PHPUnit coverage reporting, giving a measurable quality signal that was missing earlier. There are no breaking changes and the fetchSize addition is backward compatible. For production, test publish confirms, retry behavior, and consumer reconnect handling in your own environment.
- Is the package maintained and does it support a Symfony 8 upgrade path?
- Release 0.11.2 accepts the fetchSize hint Symfony 8.1 passes to receivers, signaling forward compatibility with the Symfony 8.x transport contract. The project roadmap targets 1.0 and eventual inclusion in Symfony 7.4 LTS as symfony/phpamqplib-messenger. Current 6.4 users are unaffected by the change.
- What are the alternatives to checkthiscloud/phpamqplib-messenger?
- symfony/amqp-messenger is the closest alternative but relies on the php-amqp C extension. For Laravel-native queues, community RabbitMQ queue drivers are a different integration path entirely. Choose this package when you want pure-PHP php-amqplib and are already using Symfony Messenger in Laravel.