CheckOps
Psalm
Psalm is an MIT PHP static analysis tool for finding type errors and security vulnerabilities, including taint analysis for injection flaws.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Psalm is a static analysis tool for finding errors and security vulnerabilities in PHP applications. It was created at Vimeo and focuses on type inference and soundness.
Besides type checking, Psalm offers taint analysis that tracks user-controlled input to dangerous sinks, detecting SQL injection, XSS and similar issues. Error levels, baselines and suppression annotations support adoption on existing code, and Psalter can automatically fix some issues such as adding missing types.
In the quality loop Psalm covers both correctness and security for PHP.
The source code is at vimeo/psalm on GitHub under the MIT licence, with about 5,900 stars; the most recent commit was on 11 November 2026.
Features
- Type inference: Detects type errors and dead code.
- Taint analysis: Finds injection vulnerabilities.
- Psalter: Automatic code fixes.
- Baselines: Gradual adoption.
- Plugins: Framework support.
- Error levels: Configurable strictness.
Pros
- Security focus: Taint analysis is built in.
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 11 November 2026.
- Community: About 5,900 GitHub stars.
Cons
- Overlap with PHPStan: Many teams choose one.
- Annotations: Best results need PHPDoc.
- Smaller plugin ecosystem: Fewer framework plugins than PHPStan.
Usage and Links (Example)
composer require --dev vimeo/psalm
vendor/bin/psalm --init
vendor/bin/psalm --taint-analysis
Resources:
Pricing
Psalm is free and open source under the MIT licence.
Recommended for?
- PHP teams that want taint analysis.
- Security-sensitive PHP applications.
Conclusion
Psalm combines strong type checking with built-in taint analysis for PHP.
Run its taint mode on any application that handles untrusted input.
On CheckOps, Psalm is filed under the Release & CI gates and Security testing stages. Related tools listed here include PHPStan, PHPUnit, Infection, SonarQube, Semgrep and Pest. A short trial on a real project, with your own code, data and pipeline, is usually the fastest way to choose between them, because fit matters more than feature lists. Facts here come from the official site, documentation and repository, checked on 11 November 2026.
Compare
CheckOps pages that put Psalm next to related tools. There is no paid placement on these lists.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Psalm side by side.
PPHPStanPHPStan is an MIT PHP static analysis tool that finds bugs without running code, using rule levels from 0 to 10 and a baseline for gradual adoption.Compare with Psalm
PPHPUnitPHPUnit is the BSD-3-Clause, programmer-oriented testing framework for PHP and an instance of the xUnit architecture, created by Sebastian Bergmann and distributed as a PHAR or via Composer.Compare with Psalm
IInfectionInfection is a BSD-3-Clause AST-based mutation testing framework for PHP that measures test effectiveness with Mutation Score Indicator metrics, supporting PHPUnit, Pest, Codeception and phpspec.Compare with Psalm
SSonarQubeModernize your AI workflows with code verification for the agentic era.Compare with Psalm
SSemgrepSemgrep is a fast static-analysis engine with a free open-source CLI and a paid platform for cross-file rules, supply chain, and secrets.Compare with Psalm
PPestPest is an MIT-licensed PHP testing framework built on PHPUnit with an expressive, closure-based API; Pest 5 (PHP 8.4+, PHPUnit 13) adds the Tia engine, an agent plugin, evals, PHPStan and Rector support.Compare with Psalm