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 (e.g., shape/optional), producing more precise array shapes and safer analysis. Install via Composer and enable with 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.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai