Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Workerman Bundle Laravel Package

luzrain/workerman-bundle

Symfony bundle integrating Workerman, the async event-driven PHP server, so you can run HTTP, WebSocket, and custom workers configured through Symfony's dependency injection and managed with console commands.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Runtime architecture / performance roadmap: Informs the decision of whether to invest in a long-running worker runtime (Workerman) to eliminate per-request framework bootstrap, versus staying on PHP-FPM. Workerman is pure PHP (no C extension), which makes it the "cheap to try, hard to productionize" end of the runtime spectrum relative to Swoole.
  • Build vs. buy vs. adopt for the runtime layer: This is a thin integration shim (Workerman runtime driver for a Symfony kernel). Adopting it is a "buy" of a few hundred lines of glue; the real cost is the internal work of making your codebase worker-safe — a decision that should be made on its own merits, independent of this package.
  • Framework fit / stack alignment: The package is Symfony-only, while the brief frames this as a Laravel/PHP evaluation. That mismatch is itself a decision input: for a Laravel codebase, this package is not a candidate — the comparable decision is Laravel Octane (Swoole / RoadRunner / FrankenPHP drivers).
  • Use cases where it plausibly fits: Cost-sensitive, self-hosted deployments that want worker-mode throughput without adding a PHP extension to the build image; teams that have already standardized on Workerman elsewhere (Workerman is widely used in the Chinese-language PHP ecosystem) and want Symfony inside that operational footprint.
  • Deployment-topology options (new in v0.4.0): The reuse_port option lets multiple worker processes bind the same listening port, which is the mechanism behind rolling restarts and zero-downtime reloads. That upgrades "graceful restart on deploy" from a hand-rolled concern to a supported configuration knob — modest but real operational value.
  • Not supported by this package: Any decision requiring vendor SLAs, a support contract, a security-response commitment, or broad community troubleshooting — 29 stars and 0 dependents means there is no community to lean on. It also should not anchor a roadmap; it is a tactical, reversible choice at best.

When to Consider This Package

Consider it only if all of the following hold:

  • Your application is Symfony, on a version this package supports (verify against the last release, v0.4.0 — it added Workerman 5 support and the reuse_port option. Two releases in a short window is a positive maintenance signal, but still one data point from what appears to be a single maintainer).
  • Your Workerman major is pinned deliberately. v0.4.0 tracks Workerman 5; if you are standardized on Workerman 4, you are effectively adopting the v0.3.x line, which now has a shorter maintenance horizon. Treat the package version and the Workerman major as one coupled decision in your dependency policy.
  • You have a measured throughput/latency or infrastructure-cost problem that FPM plus opcache, a tuned pool, and a reverse proxy cache have not solved. Runtime swaps are frequently adopted to fix problems that are really N+1 queries or missing caching.
  • You have already done the worker-safety audit: no mutable singletons or static state assuming one-request-per-process, no reliance on superglobals, explicit reset of Doctrine EntityManagers (clear the EM per request or you will accumulate memory and stale entities), reset of the profiler/logging buffers, careful handling of exit/die, and a plan for graceful restart on deploy (now configurable via reuse_port).
  • You can tolerate no C extension as a genuine requirement (locked-down shared hosting, minimal container images, an ops team unwilling to maintain a Swoole build).

Look elsewhere if:

  • You are on Laravel — use Octane; this package's runtime driver does not apply. (Laravel Octane already supports FrankenPHP worker mode, which gets you worker-mode performance with a well-maintained, active project.)
  • You need operational maturity: 29 stars, 0 dependents, and a low overall package score mean near-zero third-party validation. There is no evidence of production usage at scale, no community issue backlog to mine for failure modes, and bus factor is effectively 1. A feature release does not change any of that.
  • You want mainstream support and hiring gravity — FrankenPHP (worker mode) and RoadRunner are where the ecosystem's documentation, blog posts, and debugging knowledge currently concentrate; Workerman's community is real but largely outside the English-language Laravel/Symfony mainstream, which raises onboarding and incident-response cost.
  • You need long-term maintenance guarantees for a platform-level dependency. A runtime driver is infrastructure, not a utility library; if it is abandoned, your deploy pipeline breaks. Note also that a jump to Workerman 5 support can strand users on an older, now-unmaintained package line.

How to Pitch It (Stakeholders)

To executives: This is a low-cost experiment, not a platform commitment. It would let us evaluate worker-mode PHP without adding a compiled extension to our images, and the newest release (v0.4.0) adds multi-process port sharing — the plumbing needed for zero-downtime deploys — plus support for the current Workerman major. That is a credible sign of an active maintainer. But the package itself still has almost no adoption — 29 stars, zero dependent projects, one apparent maintainer — so we should treat it as evidence that the pattern is cheap to prototype, not as a dependency we standardize on. Recommendation: do not adopt as-is. Run a two-week spike in a non-critical service to quantify the actual gain; if the gain is real, implement it on a runtime with a real support base (FrankenPHP worker mode or RoadRunner, or Octane if we're on Laravel).

To engineering: The interesting question is not "which runtime driver" but "is our codebase worker-safe?" Long-running processes change the failure model: memory that used to be reclaimed at process exit now accumulates; Doctrine's EntityManager and its identity map must be reset per request; singletons and static caches leak state between users, which is a correctness and security concern. Budget the work accordingly — the integration shim is days, the audit and hardening is weeks. On v0.4.0 specifically: reuse_port gives us rolling restarts without dropping connections, so build the deploy story around it rather than a hard restart; and because v0.4.0 targets Workerman 5, decide and pin the Workerman major at the same time as the package version. Also note the framework mismatch: this is Symfony-only, so if the target service is Laravel, the correct comparison set is Octane drivers, and this package is out of scope.

Bottom line: Still worth a spike rather than a production dependency — the v0.4.0 features (Workerman 5 support, reuse_port) improve the operational story and are a healthy maintenance signal, but they do not move the adoption or bus-factor risk that drives the recommendation.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core