Skip to content

v0.17.0

Choose a tag to compare

@github-actions github-actions released this 19 May 10:20
· 174 commits to master since this release
9904163

v0.17.0 — Code quality, DI improvements, and dead code removal

Added

  • Utils::reload() — New canonical method name for graceful worker restart. Utils::reboot() is preserved as a deprecated alias with a deprecation notice. All internal callers and watcher classes have been updated. (#32)
  • SymfonyController via DIHttpRequestHandler now receives SymfonyController $controller through constructor injection instead of instantiating it internally. This enables easier testing, decoration, and swapping of the controller. A new workerman.symfony_controller service with autowiring alias is registered via WorkermanCompilerPass. (#158)

Changed

  • require pattern refactored — Replaced the require() calls in WorkermanBundle with proper injectable classes: ConfigurationTreeBuilder (configuration tree definition) and ServicesConfigurator (service registration). Removed src/config/configuration.php and src/config/services.php. (#145)
  • CompilerPass simplification — Removed unnecessary array_map transformations and simplified data flow in WorkermanCompilerPass. (#24)
  • Abandoned packages now reported — Changed composer.json audit.abandoned from "ignore" to "report" so abandoned package warnings are no longer silently suppressed during composer install/composer update. (#163)

Fixed

  • FPM-specific no-ops removedStreamedBinaryFileResponse no longer calls ignore_user_abort() and connection_aborted(), which have no effect in Workermans event-driven architecture. Added 14 unit tests and 1 E2E test. (#160)
  • Magic string extracted — The literal "+10 year" in PeriodicalTrigger is now a named class constant MAX_SCHEDULE_HORIZON. (#156)

Removed

  • Dead stream code — Deleted StreamResponseInterface and the streamContent() generator method from StreamedBinaryFileResponse. The interface was never referenced externally, and the generator was never called — BinaryFileResponseStrategy handles all BinaryFileResponse subclasses via instanceof using Workermans native withFile(). (#165)
  • Skipped tests — Removed 8 permanently skipped (never-executed) test methods from HttpRequestHandlerTest that inflated test metrics without providing coverage. (#154)

BC Breaks

  • HttpRequestHandler constructor — Changed from 3 parameters (KernelInterface $kernel, RebootStrategyInterface $rebootStrategy, ResponseConverter $responseConverter) to 2 parameters (SymfonyController $controller, RebootStrategyInterface $rebootStrategy). The class is final; all in-repo callers have been updated. (#158)

Security

  • No security changes in this release.

Full Changelog: v0.16.0...v0.17.0