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

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

macroactive/laravel-psalm
=========================

Psalm integration with Laravel. Do not cover Facades. Relatively simple integration

11.0.0(5mo ago)317.3k2MITPHPPHP &gt;7.4

Since Jan 8Pushed 5mo ago13 watchersCompare

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

READMEChangelog (10)Dependencies (1)Versions (11)Used By (0)

One more Psalm adapter for Laravel
==================================

[](#one-more-psalm-adapter-for-laravel)

Why?
----

[](#why)

Because we use Laravel and want to have decent Psalm coverage. Yes, we are aware on existence of [official integration](https://github.com/psalm/psalm-plugin-laravel). But it's bigger and has some generalisations. Our implementation adds some limitations on code but, hopefully, more lightweight and makes better checks. Also, this one is more internal tool still, so lack of documentation and other drawbacks could still present :/ Choice is yours — check both and find what suits better for you.

Limitations
-----------

[](#limitations)

We try to make the code easier for Psalm understanding by introducing these limitations. Idea of them is to decrease amount of magic as much as possible.

- all model requests must start with `Model::query()`
- don't use facades (we consider this antipattern), only proper constructor/signature DI should be used
- models must have proper notation. Version generated by `ide-helper` must be adjusted
- we don't use Eloquent collections and fallbacks to Support Collections at all time

Example of a model
------------------

[](#example-of-a-model)

```
//declare strict, NS and other usages here

use Illuminate\Support\Collection;

/**
 * @property int                                                                           $id
… other columns
 * @property-read       Collection|CountryRegion[] $regions
 * @psalm-property-read Collection  $regions
 *
 * @method self published()
 */
final class Country extends Model
{
```

You can see Psalm notation for relations/ro-properties here. Also, the method `published()` is a form of scope annotation.

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance70

Regular maintenance activity

Popularity30

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 81.2% 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 ~117 days

Recently: every ~141 days

Total

10

Last Release

172d ago

Major Versions

v8.0 → 9.02023-05-30

v9.0.5 → v10.02025-02-10

v10.1 → 11.0.02025-11-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/a7dc66e4d5a2c28386f6c96323362fe391b4cbcbf69919573d4a08f5b3ce17c7?d=identicon)[SCIF](/maintainers/SCIF)

---

Top Contributors

[![SCIF](https://avatars.githubusercontent.com/u/671925?v=4)](https://github.com/SCIF "SCIF (69 commits)")[![psilab](https://avatars.githubusercontent.com/u/54608227?v=4)](https://github.com/psilab "psilab (8 commits)")[![bravik](https://avatars.githubusercontent.com/u/1075618?v=4)](https://github.com/bravik "bravik (4 commits)")[![alexkholod](https://avatars.githubusercontent.com/u/16359925?v=4)](https://github.com/alexkholod "alexkholod (2 commits)")[![helios-ag](https://avatars.githubusercontent.com/u/334907?v=4)](https://github.com/helios-ag "helios-ag (2 commits)")

### Embed Badge

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

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3274.9M308](/packages/psalm-plugin-laravel)[php-standard-library/psalm-plugin

Psalm plugin for the PHP Standard Library

252.0M47](/packages/php-standard-library-psalm-plugin)[humanmade/psalm-plugin-wordpress

WordPress stubs and plugin for Psalm static analysis.

81459.7k23](/packages/humanmade-psalm-plugin-wordpress)[codeigniter4/devkit

Development toolkit for CodeIgniter libraries and projects

68187.1k82](/packages/codeigniter4-devkit)[ramsey/devtools

A Composer plugin to aid PHP library and application development.

7134.7k26](/packages/ramsey-devtools)[orklah/psalm-strict-types

Adds strict\_types declaration when the file is provably safe

16104.0k](/packages/orklah-psalm-strict-types)

PHPackages © 2026

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