NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #3324 most downloaded on Packagist
👎 ReactPHP extension for PHPStan
Last release 3 days ago
04 Oct 2026
Ships on a steady schedule
a new release about every 1.3 years
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
3 releases · first in 2024
Version 3.0 is a major step for this PHPStan extension: it goes well beyond flagging blocking calls and starts encoding how ReactPHP code is usually m
Version 3.0 is a major step for this PHPStan extension: it goes well beyond flagging blocking calls and starts encoding how ReactPHP code is usually meant to be written.
The release adds a full set of event-loop rules that treat the loop as a global concern you reach through Loop::…, not something you inject, pass around, or keep on objects. PHPStan now nudges you toward static loop APIs, away from Loop::get() indirection and from calling methods on values typed as LoopInterface, and it catches promoted properties and traits that would hold a loop reference in your domain model. Together, those checks reflect the direction the ReactPHP ecosystem has been taking: fewer foot-guns around loop lifetime and clearer separation between application code and the runtime.
On the react/async side, 3.0 brings static analysis for fiber-style await usage. A parser visitor tracks which closures are wrapped in async, and a call-graph collector follows the stack when await might be reached indirectly. You get feedback when await appears outside an async closure, and when a plain closure can still reach await through callees—the cases that are easy to miss in review but painful at runtime.
Everything remains on by default, but you can tune the extension under parameters.wyrihaximus.reactphp.rules, so teams can adopt event-loop or async rules gradually or silence a category without dropping the whole package. Documentation and installation notes were refreshed (including the correct extension.neon include and guidance around PHPStan’s extension installer), and the project runs on current PHP and QA tooling so the new rules sit on a maintained foundation.
Loop to be proxy calls like Loop::futureTick() thanks to @WyriHaximusLoop:: calls are allowed thanks to @WyriHaximusOne column per month.
Total pull requests resolved: 10
Include the rules file from the root of this package to have PHPStan check your code for blocking functions:
Include the rules file from the root of this package to have PHPStan check your code for blocking functions:
includes:
- vendor/wyrihaximus/phpstan-react/phpstan-reactphp-rules.neonYour coding agent can read these notes before it upgrades. Set up the MCP server →