- Can I use kraken-collective/ws-symfony-bundle in a Laravel application?
- It is a Symfony bundle, and Laravel does not implement Symfony's bundle and extension system, so there is no loader to register its Extension, CompilerPass, or service definitions. You would have to rebuild its service graph manually inside a Laravel ServiceProvider and replace Symfony-specific abstractions such as event dispatcher contracts. Integration feasibility is low; treat it as reference code rather than a drop-in dependency.
- Does kraken-collective/ws-symfony-bundle support Laravel 10, 11, or 12?
- No. The package is a Symfony bundle and ships no Laravel service provider, facade, config publishing, or Artisan integration. Its last release was 2016-11-26, so Composer resolution against Laravel 10, 11, or 12 on PHP 8.2+ is likely to fail or force unacceptable downgrades. Assume incompatibility until you verify it against your exact baseline.
- Is kraken-collective/ws-symfony-bundle still maintained?
- There is no meaningful maintenance signal. The last release was 2016-11-26, it has zero dependents and roughly 12 stars, and there are no security patches or PHP 8 compatibility updates. That makes it unsuitable as a production dependency for new Laravel work.
- How do I install kraken-collective/ws-symfony-bundle?
- In a Symfony app you would normally require it with Composer and enable the bundle, but that path does not apply to Laravel because there is no bundle loader. Before attempting anything, verify Composer resolution on your current PHP and Laravel baseline, and expect it to fail. The realistic option is to read the source and reimplement the useful session and message-routing logic natively.
- What does kraken-collective/ws-symfony-bundle actually provide?
- It wraps a WebSocket runtime for Symfony with zero-boilerplate bundle configuration and autoconfiguration. It provides service-based message handlers registered as tagged Symfony services, connection lifecycle hooks for open, message, and close, and DI access to repositories, loggers, and clients. Host, port, and runtime options are configurable for development and production.
- What Laravel-native alternatives should I use instead of this Symfony bundle?
- Use Laravel Reverb, Soketi, or a managed Pusher or Ably service, depending on whether you need first-party hosting, self-hosting, or a managed Pusher-compatible endpoint. For a custom daemon, build an Artisan command over current Ratchet or ReactPHP and register it through a normal service provider under your existing process manager. Isolate any legacy protocol behind a thin adapter so the transport stays swappable.
- Is it safe to run this package's WebSocket server in production?
- A WebSocket server is an internet-facing, stateful, long-lived process, so shipping one built on unmaintained 2016-era code is a genuine security-posture problem. There are no security patches, no PHP 8 compatibility work, and no maintenance signal. Do not put it on the critical path; use a maintained transport instead.
- Will Composer install kraken-collective/ws-symfony-bundle on PHP 8.2 with Laravel?
- Almost certainly not without problems. The package predates PHP 7.1+ type strictness and likely pins ReactPHP or Ratchet versions that conflict with modern Laravel on PHP 8.2+. Composer may fail outright or force downgrades of shared transitive dependencies, so verify with a dry-run require before planning any integration.
- Can I fork kraken-collective/ws-symfony-bundle and adapt it for Laravel?
- You can, but that turns a dependency decision into a permanent ownership commitment. You would need to reconstruct the bundle's service graph in a ServiceProvider, stub Symfony framework services, replace event dispatcher contracts, and own security patching for an internet-facing daemon. Only do this if the package provides a specific protocol or behavior that Reverb, Soketi, or Pusher cannot match.
- How do I test WebSocket handlers if I reimplement this in Laravel?
- Test the message-routing and session lifecycle logic in isolation from the transport, using fakes for the connection and event dispatcher. Then add an integration test that starts the Artisan worker on an ephemeral port and exercises the open, message, and close flows. Keep protocol adapters thin so you can test any legacy path separately from the current transport.