Psalm 7 release: PHP security&static analysis software Vimeo's Psalm project released Psalm 7, a PHP static analysis tool that turns security taint analysis on by default and runs it in the same pass as type checking and dead code detection, with taint analysis now up to 10x faster after taints were stored as a bitmask and resolved over compact per-function summaries. Psalm 7 adds new taint kinds including TaintedNosql for MongoDB sinks, TaintedLlmPrompt for prompt injection, and TaintedUrlComponent and TaintedUrlPath for URL injection, plus a Hack-style purity model, graph-based dead code detection, template defaults, and full support for PHP 8.5 and 8.6. The release runs on 64-bit PHP 8.2 to 8.6, ships the PHPUnit, Symfony, Laravel, Mockery and sabre/event plugins enabled by default, and moves to daily releases. Announcing Psalm 7 Cross-posted from Daniil Gentili's blog » https://blog.daniil.it/2026/11/02/announcing-psalm-7/ . Announcing the release of Psalm 7 Featuring a simply enormous number of new features and bug fixes, such as: - security analysis on by default : fully refactored for 10x+ performance and much greater coverage, in the same run as type checking and dead code detection; - much deeper security analysis taint tracking : NoSQL, LLM prompt and URL injection, new sources like php://input and uploaded file names, flows through closures, generators, traits and by-reference parameters, and ready-made stubs for Guzzle, PSR-7, Monolog, MongoDB and more. - a new purity model based on Hack's capabilities: declare exactly which side effects a function may have io , time , write-props ... , with purity templates for classes, closures and automatically inferred annotations; - graph-based dead code detection : If nothing reachable uses a class, function, method, constant, variable, etc, Psalm finds it, now properly handling unused cycles as well. - Template defaults @template TError of Throwable = RuntimeException for classes, functions and methods: Result