Weave Code
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 type inference for PSL Type\specifications. Enables more precise array/shape types (e.g., Type\shape coercions) so Psalm reports correct, specific types during static analysis.

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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport