xtreamwayz/psr-container-messenger
60.3
Adequate · 21 September 2026
860
lines of production code
PHP
primary language
4
measurements over time
What this system is
This system is a PHP library that integrates Symfony Messenger with PSR-11 containers, enabling robust message bus and transport management. It provides factories and configuration providers to handle commands, events, and queries across various backends like Doctrine, AMQP, and Redis. The codebase has been modernized to support recent PHP and Symfony versions, with comprehensive test coverage ensuring reliable service registration and transport behavior.
How it got here
2018 — Symfony Messenger migration and modernization
7 changes.
The project underwent a significant refactoring to align with the Symfony Messenger component, replacing custom queue-based implementations with standard transport and serializer integrations. This period involved updating the codebase to support newer versions of Symfony and PHP, renaming the package, and modernizing the CI/CD pipeline and coding standards.
2019–2020 — Doctrine transport and configuration examples
5 changes.
This period focused on expanding the Symfony Messenger component by introducing a new Doctrine transport for message storage and processing. The work included implementing the transport factory, adding comprehensive unit and integration tests for the new and existing components, and providing example configuration files to demonstrate various messenger setups.
Features
Add Doctrine transport support for Symfony Messenger
A new \DoctrineTransportFactory\ class has been added to the \src/Transport\ directory, enabling the use of Doctrine DBAL or ORM connections as transports for the Symfony Messenger component. The factory resolves the appropriate Doctrine connection from the PSR-11 container and constructs a \DoctrineTransport\, allowing messages to be stored and processed via Doctrine. This introduces a new transport type identified by the \doctrine://\ DSN scheme.
src/Transport · high confidence
Add example configuration files for various messenger setups
Added five new example configuration files in the \example\ directory to demonstrate different messenger bus and transport configurations. These include \basic-config.php\ for a simple multi-bus setup, \single-bus-config.php\ for a single-bus architecture, \full-cqrs-config.php\ for a complete CQRS pattern with multiple buses and transports, \serializer-config.php\ for custom serializer settings, and \advanced-transport-config.php\ for specific transport options. These files serve as reference implementations for users to understand how to configure the messenger component in various scenarios.
example · high confidence
Behavioural changes
Migrate to Symfony 4.4 and update namespace
The package has been updated to support Symfony 4.4, which includes a refactor of the message consumption workflow. The custom \MessengerConsumerCommand\ and its factory have been removed in favor of the standard \ConsumeMessagesCommand\ from the \Symfony\\Component\\Messenger\ component. This change simplifies the command structure by leveraging the framework's built-in command, while the codebase namespace has been updated from \XtreamLabs\\Expressive\\Messenger\ to \Xtreamwayz\\PsrContainerMessenger\.
src/Command · high confidence
Refactored container integration with Symfony Messenger 5.1+ and PSR-11
The library has been updated to support Symfony Messenger 5.1+, replacing the previous Interop/Enqueue-based queue implementation with Symfony's built-in transport and serializer components. The \src/Container\ directory now provides modern factory classes (\AddBusNameStampMiddlewareFactory\, \ContainerHandlersLocatorFactory\, \SendersLocatorFactory\, \TransportFactory\) that integrate with PSR-11 containers. The old \QueueReceiver\ and \QueueSender\ classes have been removed, and the namespace has been updated from \XtreamLabs/\\ to \Xtreamwayz/\\. Users will see a cleaner, more standard integration with Symfony's messaging ecosystem, including support for Doctrine, AMQP, Redis, and sync transports via DSN configuration.
src/Container · high confidence
Update CI configuration and coding standards
The project migrated its continuous integration from Travis CI and CircleCI to GitHub Actions, as evidenced by the removal of .travis.yml and circle.yml. The static analysis tool was switched from PHPStan to Psalm, reflected by the addition of psalm.xml.dist and the removal of PHPStan configuration. Coding standards were updated to use the Laminas Coding Standard instead of the previous PSR2 and Doctrine rules, and PHPUnit was configured to fail on risky tests and warnings.
(repo-wide) · high confidence
Upgrade to Symfony Messenger 4.1 and refactor configuration
The library has been updated to support Symfony Messenger 4.1, introducing a new \EventDispatcherDelegatorFactory\ that configures retry strategies and failure transport listeners for the event bus. The \ConfigProvider\ has been refactored to register factories for command, event, and query message buses, replacing the previous queue-based receiver/sender setup. Additionally, the package namespace has been changed from \XtreamLabs\\Expressive\\Messenger\ to \Xtreamwayz\\PsrContainerMessenger\, and the \laminas-cli\ configuration has been added to expose the \messenger:consume\ command.
src · medium confidence
Test coverage
Added comprehensive test coverage for the messenger integration; Added integration tests for multiple dependency injection containers; Added test fixtures for message handling; Added tests for message handling and transport factory logic; Added tests for the Symfony serializer factory.
Dependencies
Package renamed and upgraded to support Symfony 6/7 and PHP 8.1+
The package has been renamed from 'xtreamlabs/expressive-messenger' to 'xtreamwayz/psr-container-messenger' to reflect its broader compatibility beyond Zend Expressive. The dependency requirements have been significantly updated: PHP version is now restricted to ^8.1, and the library now supports Symfony Messenger ^6.0 or ^7.0, along with related components like amqp, doctrine, redis, and event-dispatcher for those versions. Additionally, the namespace has been updated to 'Xtreamwayz\\PsrContainerMessenger', and dev dependencies have been modernized, including PHPUnit ^9.5 and Psalm ^4.18.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 56 → 60 (+4.2)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (-0.2)
- Architecture 69 → 69 (+0.0)
- Maturity 46 → 46 (+0.0)
- Readiness 64 → 76 (+12.2)
- Security 59 → 71 (+12.1)
Resolved (14)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- LLM evaluation failed
- Medium CVE: GO-2021-0226 (go.mod)
- No exposed public API
- Test reliability not included
- dormant codebase — no living knowledge left to concentrate
New (42)
- Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (7 lines × 4) (src/Container/HandleMessageMiddlewareFactory.php)
- Fork-triggerable workflow runs with an unscoped write token
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 22 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
xtreamwayz/psr-container-messenger was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit fc30eac0025f8582a468a54cdbe0d503fbd36721 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.