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

Symfony Workerman Bundle Laravel Package

loveyu/symfony-workerman-bundle

A Symfony bundle for integrating Workerman, bringing long-running PHP server and socket capabilities into Symfony applications. It helps wire Workerman workers into a Symfony project, making it easier to build persistent services and real-time features alongside existing Symfony code.

View on GitHub
Deep Wiki
Context7

Getting Started

Start by confirming the version bump actually resolves to something installable on your runtime, since "support 8.5" is a compatibility change rather than a feature change:

composer require <vendor>/<package>:"^0.0.7" --dry-run
composer show <vendor>/<package>

Check three things before touching application code:

  1. composer.json of the package — look at the php constraint and the illuminate/* constraints. If php now reads ^8.2 || ^8.3 || ^8.4 || ^8.5 (or >=8.2), your CI matrix needs an 8.5 job before you trust the upgrade. If it's ^8.5 only, that's a silent floor bump and effectively a breaking change for anyone on 8.4.
  2. The changelog / release diff — support 8.5 should mean "no API change", but confirm no @internal classes were touched. Diff the tag: git diff 0.0.6..0.0.7 -- src/.
  3. The service provider and config file — vendor/<vendor>/<package>/src/*ServiceProvider.php and any config/*.php. These tell you what's auto-registered and what you can override without forking.

First use case: get one real code path exercising the package under 8.5 in a test rather than in the browser. A single feature test that boots the provider, resolves the main binding from the container, and asserts one output is enough to catch signature incompatibilities, deprecation-to-exception conversions (if you run with E_ALL and an error handler that throws), and container resolution drift.

Implementation Patterns

Pin the runtime in CI before you pin the package. Add an 8.5 job alongside your existing matrix so the upgrade is validated by the same suite that gates everything else. Do this in the same PR as the composer.json bump — otherwise 8.5 support is a claim you never test.

Treat the version constraint as a compatibility declaration, not a feature flag. Since 0.0.7 ships no new API, keep your own constraints narrow (^0.0.7) and let the package's own php constraint do the compatibility work. Widening to ^0.0.7 || ^0.0.8 prematurely just invites an untested minor into production.

Wrap the package boundary in one place. Even a thin adapter — a single class that composes the package's public API and exposes only what your domain needs — pays off the first time a 0.0.x release changes a signature. Call sites depend on your adapter; the adapter is the only file that imports the vendor namespace.

Config over code for behaviour changes. Publish the config (php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider") and drive environment-specific behaviour from env vars rather than branching in application code. This keeps the upgrade path open: future releases can add keys without you editing service providers.

Test the contract, not the implementation. Assert on what the package returns or dispatches (a response, an event, a stored row) rather than on internal method calls. When a compat release shifts an internal call, contract tests stay green and your suite keeps its signal.

Run deprecations as errors in one CI job. PHP 8.5 removes or deprecates behaviour that earlier minors tolerated. Set error_reporting=E_ALL and convert deprecations into failures in a dedicated job so you find them at build time rather than in a customer's log at 2am.

Gotchas and Tips

  • "Support 8.5" is ambiguous. It can mean PHP 8.5, Laravel 8.5 (which is ancient and a different proposition entirely), or a minor of the package's own dependency. Read the composer.json diff — the constraint that actually changed tells you which. Guessing wrong here costs the most time of anything in this upgrade.
  • Implicit nullable parameters. Deprecated in PHP 8.4 and still noisy in 8.5. If the package has signatures like function handle(string $x = null), you'll see deprecation notices on autoloaded files. Don't patch vendor/ — check whether 0.0.8 is imminent, or pin 8.4 in production while you wait.
  • Non-canonical casts. (integer), (boolean), (double) are deprecated in favour of (int), (bool), (float). Only relevant if the package ships casts in hot paths; you'll spot them in deprecation logs immediately.
  • Lockfile skew across environments. composer.lock on your machine may resolve a different patch than CI if the package's constraints are loose. Commit the lockfile update in the same commit as the constraint change, and verify with composer validate --strict.
  • Opcode/extension differences. 8.5 on your local Docker image may not match production. If the package does anything with reflection, attributes, or JIT-sensitive hot loops, verify on the production image, not on your laptop.
  • Silent behaviour changes via illuminate/* constraints. A patch release that widens its Laravel constraint can pull a newer framework minor into your app as a transitive resolve. Run composer update --with-dependencies <vendor>/<package> and read the full resolved diff, not just the one package.
  • Debugging tip: if something breaks after the bump and the stack trace points inside vendor/, re-run the failing test against the previous tag (composer require <vendor>/<package>:0.0.6 --with-dependencies) to confirm causation before you spend time in a debugger.
  • Extension point to prefer: the package's published config and its container bindings are stable surfaces; concrete classes and @internal-marked types are not. If you need to change behaviour the package doesn't expose, raise it upstream rather than subclassing something private — a 0.0.x series will not preserve it.
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.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
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