- Is kismia/centrifugo-bundle a Laravel package?
- No. It is a Symfony bundle: it ships a Bundle subclass registered through the Symfony kernel, a DependencyInjection extension with a config tree, and services auto-wired through the Symfony container. None of that lifecycle exists in Laravel, so it cannot be required and used as-is in a Laravel application. Treat it as a protocol reference rather than a dependency.
- Can I install kismia/centrifugo-bundle in a Laravel app with Composer?
- Composer may resolve it, but you would be pulling in symfony/http-kernel, symfony/dependency-injection, and symfony/config for code that never boots. Laravel already uses some Symfony components but not the bundle and kernel contracts, so you add framework surface area for no benefit. Stick to a small in-house wrapper built on Laravel's HTTP client instead.
- How do I integrate Centrifugo with Laravel, then?
- Implement two thin pieces: a CentrifugoClient covering publish, broadcast, presence, and history over the HTTP API, and a CentrifugoTokenService that signs connection and subscription JWTs with your shared secret. Bind both as singletons in a service provider behind a config/centrifugo.php file holding the endpoint, API key, HMAC secret, and token TTL. Expect roughly one to three developer days.
- What Centrifugo functionality does the bundle actually cover?
- The underlying concern is small: mint connection and subscription tokens, then call the HTTP API endpoints such as /api/publish, /api/broadcast, /api/presence, and /api/history. Most of the bundle is dependency-injection plumbing around that thin client and signer. Confirm in the source which endpoints and which side of the token flow are actually implemented before relying on presence or history support.
- Which Centrifugo server versions does it support, and does it handle token-based API auth?
- This is unverified in the available information. Centrifugo's HTTP API and token format changed noticeably across v2 through v5, including the move from api_key-style authentication to token-based API auth and changes to JWT claim names and info/b64info handling. Diff the bundle source against your deployed Centrifugo version before committing to it.
- What are the PHP and Symfony version constraints?
- The composer.json constraints are not confirmed in the brief and may pin you to end-of-life runtimes. Check the PHP and Symfony requirements before adopting, particularly if you are running a current Symfony release. Also confirm the license is permissive, ideally MIT, if you plan to fork or vendor the code.
- Is kismia/centrifugo-bundle actively maintained?
- The adoption signal is weak: around 11 stars, zero dependents, and no visible CI, test suite, security policy, or documentation. It looks like an internal extraction from the Kismia stack rather than a community project. Assume no upstream support and budget for owning the code yourself.
- How should I test a Centrifugo integration in a Laravel application?
- Define RealtimePublisher and RealtimeTokenIssuer contracts in your domain, bind the Centrifugo implementation to them, and swap in a fake during tests. Assert that the expected payloads are published and that tokens are signed with the correct secret and claims. Keep unit tests off the network and reserve real HTTP calls for a small integration suite.
- What are the alternatives to kismia/centrifugo-bundle?
- Use a maintained, framework-agnostic PHP Centrifugo client, or write direct Guzzle or Laravel Http:: calls against the HTTP API. Only adopt this bundle directly if your target application is genuinely Symfony, where you register the bundle and publish its configuration and the risk drops to version compatibility alone.
- What should I check before running this in production?
- Verify Centrifugo version compatibility, the license, and whether the package supports the auth mode you use. Implicit container wiring and configuration defaults can mask a wrong secret or wrong API endpoint until runtime, so add explicit startup validation. Also confirm error handling and timeouts around the publish calls, since the integration sits on your request path.