An architecture diagram describes an intention and a dependency check describes what is true, and the two diverge from the first week. –report-uncovered is the flag worth turning…
Level 9 requires every mixed to be narrowed before use, which is a different order of work from level 8. Every boundary that decodes JSON, reads a configuration…
Splitting into services enforces nothing if they share a database; splitting into modules with a checked dependency rule enforces more. A build failure on a cross-module import is…
Model properties come from the database and the analyser cannot see the schema, so a generated docblock is the bridge and it drifts on the next migration. Generating…
Pure intersection types in 8.1 mean class and interface types only, which excludes the nullable case that most signatures need. The restriction to class types is what “pure”…
void means the function returns nothing and never means it does not return, and the second is information a static analyser can act on. The practical value is…
8.1 on 25 November, and the feature PHP had been simulating with class constants for a decade. A status column holding three spellings of the same thing.
A service container returning mixed and a model with magic properties defeat static analysis entirely without a framework-aware extension. The extension is not optional on a framework-heavy codebase…