Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Psalm Plugin Laravel Package

php-standard-library/psalm-plugin

Psalm plugin for PHP Standard Library (PSL) that improves static analysis of PSL Type specifications. It gives Psalm precise inferred types for shapes and coerce results, such as exact array shapes instead of broad unions. Install with Composer as a dev dependency and enable via psalm-plugin.

View on GitHub
Deep Wiki
Context7
2.4.0
2.3.0

What's Changed

New Contributors

Full Changelog: https://github.com/php-standard-library/psalm-plugin/compare/2.2.1...2.3.0

1.1.4

added compatibility with Psalm 5.0

Full Changelog: https://github.com/php-standard-library/psalm-plugin/compare/1.1.3...1.1.4

2.0.1

added compatibility with Psalm 5.0

Full Changelog: https://github.com/php-standard-library/psalm-plugin/compare/2.0.0...2.0.1

2.0.0
1.1.3
1.1.1
  • fixed multiple bugs in the newly introduced return type providers
  • added return type provided for Psl\Iter\last_key
  • added return type provided for Psl\Iter\first_key
1.1.0

new return type providers:

  • Regex\capture_groups return Type\TypeInterface<array{0: string, T1: string, T2: string, ...}> when argument type is array{0: T1, 1: T2, ...} and all properties ( Tn ) are literal. ( thanks to @veewee )
  • Iter\count return positive-int when $iterable is a non-empty-list<_>.
  • Iter\count return positive-int when $iterable is a non-empty-array<_, _>.
  • Iter\count return int(0) when $iterable is empty&array<_, _>
  • Iter\count return int(x) when $iterable is a non-empty-list<_> with a known count, where x is the size of $iterable.
  • Iter\count return int(x) when $iterable is a non-empty-array<_, _> with a known count, where x is the size of $iterable.
  • Iter\last return Tv when $iterable is a non-empty-list<Tv>.
  • Iter\last return Tv when $iterable is a non-empty-array<_, Tv>.
  • Iter\last return null when $iterable is empty&array<_, _>
  • Iter\last return Tv when $iterable is array{...} with at least 1 property.
  • Iter\first return Tv when $iterable is a non-empty-list<Tv>.
  • Iter\first return Tv when $iterable is a non-empty-array<_, Tv>.
  • Iter\first return null when $iterable is empty&array<_, _>
  • Iter\first return Tv when $iterable is array{...} with at least 1 property.
  • Str\after return null|lowercase-string when the first argument is lowercase-string.
  • Str\after_last return null|lowercase-string when the first argument is lowercase-string.
  • Str\after_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\after_last_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\before return null|lowercase-string when the first argument is lowercase-string.
  • Str\before_last return null|lowercase-string when the first argument is lowercase-string.
  • Str\before_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\before_last_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\after return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\after_last return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\after_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\after_last_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\before return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\before_last return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\before_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Byte\before_last_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\after return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\after_last return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\after_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\after_last_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\before return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\before_last return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\before_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\Grapheme\before_last_ci return null|lowercase-string when the first argument is lowercase-string.
  • Str\chunk returns non-empty-list<non-empty-string> if $string is non-empty-string
  • Str\chunk returns non-empty-list<non-empty-lowercase-string> if $string is non-empty-lowercase-string
  • Str\Byte\chunk returns non-empty-list<non-empty-string> if $string is non-empty-string
  • Str\Byte\chunk returns non-empty-list<non-empty-lowercase-string> if $string is non-empty-lowercase-string
  • Str\lowercase returns non-empty-lowercase-string if $string is non-empty-string or non-falsy-string
  • Str\Byte\lowercase returns non-empty-lowercase-string if $string is non-empty-string or non-falsy-string
  • Str\repeat returns non-empty-lowercase-string if $string is non-empty-lowercase-string
  • Str\repeat returns non-empty-string if $string is non-empty-string
  • Str\repeat returns lowercase-string if $string is lowercase-string
  • Str\repeat returns string(x) if $string is a literal, and $multiplier is literal, where x is the result.
  • Str\slice returns lowercase-string if $string is lowercase-string
  • Str\Byte\slice returns lowercase-string if $string is lowercase-string
  • Str\Grapheme\slice returns lowercase-string if $string is lowercase-string
  • Str\splice returns lowercase-string if $string is lowercase-string and $replacement is lowercase-string
  • Str\Byte\splice returns lowercase-string if $string is lowercase-string and $replacement is lowercase-string
  • Str\split returns non-empty-list<non-empty-string> if $string is non-empty-string
  • Str\split returns non-empty-list<non-empty-lowercase-string> if $string is non-empty-lowercase-string
  • Str\Byte\split returns non-empty-list<non-empty-string> if $string is non-empty-string
  • Str\Byte\split returns non-empty-list<non-empty-lowercase-string> if $string is non-empty-lowercase-string
  • Str\uppercase returns non-empty-string if $string is non-empty-string
  • Str\Byte\uppercase returns non-empty-string if $string is non-empty-string
1.0.1
1.0.0
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource