PHPackages                             testanull/psalm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. testanull/psalm

ActiveLibrary[Testing &amp; Quality](/categories/testing)

testanull/psalm
===============

A static analysis tool for finding errors in PHP applications

3.5.3(6y ago)19MITPHPPHP ^7.1.3

Since Nov 21Pushed 6y agoCompare

[ Source](https://github.com/testanull/psalm)[ Packagist](https://packagist.org/packages/testanull/psalm)[ RSS](/packages/testanull-psalm/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (21)Versions (276)Used By (0)

[![logo](PsalmLogo.png)](https://psalm.dev)
===========================================

[](#)

[![Packagist](https://camo.githubusercontent.com/ae7cfedaa3fa4a20e1489de5bf35db2ad0cccbf22da188048586dbeb7cc154c8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f76696d656f2f7073616c6d2e737667)](https://packagist.org/packages/vimeo/psalm)[![Packagist](https://camo.githubusercontent.com/70854dc4269d04de2e28ee42e0d04e1687ced7a61034e9938a4d08473e2634b6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f76696d656f2f7073616c6d2e737667)](https://packagist.org/packages/vimeo/psalm)[![Travis CI](https://camo.githubusercontent.com/30d4c116eff29c6df06b16b20f66f4e885b0f899c1607cdab1276183aa2c7554/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f76696d656f2f7073616c6d2f6d61737465722e737667)](https://travis-ci.org/vimeo/psalm/branches)[![Coverage Status](https://camo.githubusercontent.com/67050932be883890268aff7912fd6bc486e4112394f4297826da93270e42b457/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f76696d656f2f7073616c6d2f62616467652e737667)](https://coveralls.io/github/vimeo/psalm)[![Psalm coverage](https://camo.githubusercontent.com/162e3178b78189e239c52f24eb2d55ae339ead069eb12b45124330c7cae2f198/68747470733a2f2f73686570686572642e6465762f6769746875622f76696d656f2f7073616c6d2f636f7665726167652e7376673f)](https://camo.githubusercontent.com/162e3178b78189e239c52f24eb2d55ae339ead069eb12b45124330c7cae2f198/68747470733a2f2f73686570686572642e6465762f6769746875622f76696d656f2f7073616c6d2f636f7665726167652e7376673f)

Psalm is a static analysis tool for finding errors in PHP applications, built on top of [PHP Parser](https://github.com/nikic/php-parser).

It's able to find a [large number of issues](https://github.com/vimeo/psalm/blob/master/docs/running_psalm/issues.md), but it can also be configured to only care about a small subset of those.

[Try a live demo](https://psalm.dev/), or install it in your project by following the Quickstart Guide below.

Psalm documentation
-------------------

[](#psalm-documentation)

Documentation is available on [Psalm’s website](https://psalm.dev/docs), generated from the [docs](https://github.com/vimeo/psalm/blob/master/docs) folder.

Quickstart Guide
----------------

[](#quickstart-guide)

Install via [Composer](https://getcomposer.org/):

```
composer require --dev vimeo/psalm
```

Add a config:

```
./vendor/bin/psalm --init
```

Then run Psalm:

```
./vendor/bin/psalm
```

The config created above will show you all issues in your code, but will emit `INFO` issues (as opposed to `ERROR`) for certain common trivial code problems. If you want a more lenient config, you can specify the level with

```
./vendor/bin/psalm --init [source_dir] [level]
```

You can also [learn how to suppress certain issues](https://github.com/vimeo/psalm/blob/master/docs/running_psalm/dealing_with_code_issues.md).

How Psalm Works
---------------

[](#how-psalm-works)

A basic rundown of Psalm’s internals can be found in [docs/how\_psalm\_works.md](https://github.com/vimeo/psalm/blob/master/docs/how_psalm_works.md).

Acknowledgements
----------------

[](#acknowledgements)

The engineering team [@vimeo](https://github.com/vimeo) for encouragement and patience, especially [@nbeliard](https://github.com/nbeliard), [@erunion](https://github.com/erunion) and [@nickyr](https://github.com/nickyr).

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 92.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Recently: every ~9 days

Total

271

Last Release

2422d ago

Major Versions

1.1.5 → 2.0.82018-07-10

1.1.7 → 2.0.92018-07-22

1.1.8 → 2.0.102018-08-14

1.x-dev → 2.0.112018-08-30

2.x-dev → 3.0.02018-11-18

PHP version history (9 changes)0.1PHP &gt;=5.4

0.3.0PHP &gt;=5.5

0.3.15PHP ^5.5 || ^7.0

0.2.17PHP ^5.4 || ^7.0

0.3.40PHP ^5.6 || ^7.0

2.0.0PHP ^7.0

1.1.5PHP ^5.6||^7.0

3.3.0PHP ^7.1

3.5.2PHP ^7.1.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/3e4cacb9e6567bacfad5e76a0e62f8e4e830787f8fe20f9211efd5acc43ac88d?d=identicon)[testanull](/maintainers/testanull)

---

Top Contributors

[![muglug](https://avatars.githubusercontent.com/u/2292638?v=4)](https://github.com/muglug "muglug (4617 commits)")[![weirdan](https://avatars.githubusercontent.com/u/57403?v=4)](https://github.com/weirdan "weirdan (80 commits)")[![TysonAndre](https://avatars.githubusercontent.com/u/1904430?v=4)](https://github.com/TysonAndre "TysonAndre (49 commits)")[![SignpostMarv](https://avatars.githubusercontent.com/u/304403?v=4)](https://github.com/SignpostMarv "SignpostMarv (44 commits)")[![bugreportuser](https://avatars.githubusercontent.com/u/37939393?v=4)](https://github.com/bugreportuser "bugreportuser (44 commits)")[![bdsl](https://avatars.githubusercontent.com/u/159481?v=4)](https://github.com/bdsl "bdsl (42 commits)")[![iluuu1994](https://avatars.githubusercontent.com/u/1752683?v=4)](https://github.com/iluuu1994 "iluuu1994 (14 commits)")[![voku](https://avatars.githubusercontent.com/u/264695?v=4)](https://github.com/voku "voku (11 commits)")[![joshdifabio](https://avatars.githubusercontent.com/u/5609851?v=4)](https://github.com/joshdifabio "joshdifabio (8 commits)")[![ADmad](https://avatars.githubusercontent.com/u/142658?v=4)](https://github.com/ADmad "ADmad (6 commits)")[![andrew-demb](https://avatars.githubusercontent.com/u/12499813?v=4)](https://github.com/andrew-demb "andrew-demb (6 commits)")[![DaveLiddament](https://avatars.githubusercontent.com/u/6787687?v=4)](https://github.com/DaveLiddament "DaveLiddament (6 commits)")[![TysonAndre-tmg](https://avatars.githubusercontent.com/u/110992834?v=4)](https://github.com/TysonAndre-tmg "TysonAndre-tmg (5 commits)")[![jaydiablo](https://avatars.githubusercontent.com/u/136907?v=4)](https://github.com/jaydiablo "jaydiablo (5 commits)")[![tvdijen](https://avatars.githubusercontent.com/u/841045?v=4)](https://github.com/tvdijen "tvdijen (5 commits)")[![MacFJA](https://avatars.githubusercontent.com/u/1475671?v=4)](https://github.com/MacFJA "MacFJA (4 commits)")[![paragonie-scott](https://avatars.githubusercontent.com/u/11591518?v=4)](https://github.com/paragonie-scott "paragonie-scott (4 commits)")[![lhchavez](https://avatars.githubusercontent.com/u/168028?v=4)](https://github.com/lhchavez "lhchavez (4 commits)")[![srsbiz](https://avatars.githubusercontent.com/u/1525842?v=4)](https://github.com/srsbiz "srsbiz (4 commits)")[![theofidry](https://avatars.githubusercontent.com/u/5175937?v=4)](https://github.com/theofidry "theofidry (3 commits)")

---

Tags

phpcodeinspection

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/testanull-psalm/health.svg)

```
[![Health](https://phpackages.com/badges/testanull-psalm/health.svg)](https://phpackages.com/packages/testanull-psalm)
```

###  Alternatives

[vimeo/psalm

A static analysis tool for finding errors in PHP applications

5.8k77.5M6.7k](/packages/vimeo-psalm)[phan/phan

A static analyzer for PHP

5.6k11.2M1.1k](/packages/phan-phan)[infection/infection

Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.

2.2k26.2M1.8k](/packages/infection-infection)[behat/behat

Scenario-oriented BDD framework for PHP

4.0k96.8M2.0k](/packages/behat-behat)[maglnet/composer-require-checker

CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package

99810.9M671](/packages/maglnet-composer-require-checker)[danog/madelineproto

Async PHP client API for the telegram MTProto protocol.

3.4k855.0k18](/packages/danog-madelineproto)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
