- What does setono/client-bundle actually do?
- It provides a ready-to-use Symfony integration for tracking users between visits, wiring client services, dependency injection configuration, and a consent hook (PreStoreCookieEvent) so you can connect to the external API with minimal boilerplate. The bundle's value over the raw client is configuration, event wiring, and consent gating. Those pieces are tightly coupled to Symfony's service container and event dispatcher.
- Is setono/client-bundle a Laravel package?
- No. setono/client-bundle is a Symfony bundle: it ships a bundle class registered in config/bundles.php, a DI extension, and Symfony event-dispatcher hooks. The Composer name and README reflect that, so treat any Laravel framing as conditional. If your application is Laravel, the bundle is the wrong abstraction layer.
- Can I use setono/client-bundle in a Laravel application?
- Not directly. The viable paths are to consume the underlying framework-agnostic client libraries and wrap them in a Laravel service provider, or to build a thin bridge that replicates the service configuration and dispatches a Laravel-side equivalent of PreStoreCookieEvent from middleware. Both shift effort from configuration to glue code, so cost that before committing.
- How do I install and upgrade setono/client-bundle?
- Install with composer require setono/client-bundle, then register the bundle in config/bundles.php or use the Flex recipe, configure credentials, and wire consent handling before anything writes cookies. Upgrading from v1.1.0 is a drop-in: composer update setono/client-bundle to ^1.2.0 and run your test suite, since v1.2.0 contains no public API or runtime changes.
- What PHP and Symfony versions does setono/client-bundle support?
- v1.2.0 keeps the PHP 8.1 floor unchanged, so no runtime upgrade is forced. Check the bundle's composer.json for the exact Symfony version range and PSR interface constraints, and verify they do not collide with your application's existing constraints. Transitive dependency collisions are the main thing to validate before adopting.
- What is PreStoreCookieEvent and why does consent matter?
- PreStoreCookieEvent is the bundle's consent hook, dispatched before a cookie is stored so a listener can veto or allow it. If it is misconfigured or never dispatched, cookie storage can be silently suppressed or prematurely allowed, which is a compliance risk rather than an availability one. Map it to your CMP (or Laravel's cookie encryption and consent middleware) and add a test asserting the gate works before enabling cookie writes.
- How do I test an integration with setono/client-bundle?
- Because services are configured through the container, you can swap in test doubles and assert that PreStoreCookieEvent is dispatched and honored around cookie writes. The project itself enforces PHPStan at max level and 100% MSI mutation testing with Infection, which raises confidence in behaviour-preserving releases. Ask whether that coverage includes bundle boot and event-dispatch integration paths, not just unit logic, and add a functional test for the consent gate.
- What are the production risks of adopting setono/client-bundle?
- Upgrade risk is low, but adoption risk is moderate: framework mismatch on Laravel, the consent path being the only real correctness surface, and bus factor on a small third-party bundle. The strong static-analysis and mutation-testing signals are genuinely positive for a third-party integration point. Pin the version, assign an internal owner for upgrades, and keep a fallback (the underlying client) if the bundle is abandoned.
- What are the alternatives to setono/client-bundle?
- On Laravel, consume the underlying framework-agnostic client libraries directly behind a custom service provider, or use a Laravel-native package for the same job. On Symfony or a Symfony-based commerce stack such as Sylius, this bundle is the conventional, declarative path and a hand-rolled provider usually is not worth it.
- Who maintains setono/client-bundle and what is its BC policy?
- setono/client-bundle is maintained by Setono as a small third-party bundle, so check the repository for the post-1.0 backward-compatibility and versioning policy and the supported PHP/Symfony window. The v1.2.0 tooling upgrades (PHPStan max level, Infection, Rector 2) suggest future patch and minor releases are intended to be behaviour-preserving. Still review changelogs and pin versions.