PHPackages                             psalm/attributes - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. psalm/attributes

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

psalm/attributes
================

A collection of PHP 8 Attributes that Psalm can understand

0.1.0(5y ago)19120.0k↓35.2%2MITPHPPHP &gt;=8

Since Oct 31Pushed 5y ago6 watchersCompare

[ Source](https://github.com/psalm/psalm-attributes)[ Packagist](https://packagist.org/packages/psalm/attributes)[ RSS](/packages/psalm-attributes/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (2)

psalm-attributes
================

[](#psalm-attributes)

A repository for PHP 8 Attributes that you can use with Psalm.

Installation
------------

[](#installation)

The potential for PHP 8's runtime attribute reflection somewhere in your codebase makes this complicated.

If the following code exists your codebase:

```
function getClassAttributes(string $className) {
    foreach ((new ReflectionClass($className))->getAttributes() as $attr) {
        $attr->newInstance();
    }
}
```

*And* there’s a possibility it might load classes with these particular attributes then install with

```
composer require psalm/attributes:*

```

If you’re not planning to use any runtime attribute reflection (and nobody might use it on your library/package classes) then it should be safe to install with

```
composer require --dev psalm/attributes

```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity38

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

2026d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/37a992956f2ceb043547091360fe71dacdd2b227d5450e7022b2a53660ba4e44?d=identicon)[muglug](/maintainers/muglug)

![](https://www.gravatar.com/avatar/819d5d9fe8f78d00cc5dd7972cbb9e4f049c9bff7186e0e401f3191b3f137885?d=identicon)[weirdan](/maintainers/weirdan)

---

Top Contributors

[![muglug](https://avatars.githubusercontent.com/u/2292638?v=4)](https://github.com/muglug "muglug (8 commits)")

---

Tags

phpstatic analysisattributes

###  Code Quality

Static AnalysisPsalm

Type Coverage Yes

### Embed Badge

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

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

PHPackages © 2026

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