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.
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:
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.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/.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.
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.
composer.json diff — the constraint that actually changed tells you which. Guessing wrong here costs the most time of anything in this upgrade.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.(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.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.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.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.@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.How can I help you explore Laravel packages today?