Patch release for the 3.x (Psalm 6) line. Fixes the init command emitting Psalm 7-only configuration, plus Laravel 11 analysis correctness plus other enhancements and fixes from 4.x branch:
Features
- Type
$thisinArtisan::command()closures so command callbacks resolve$thisto the command instance (#1122)
Fixes
- Scope the
Artisan::command()$thisoverride to the callback closure so it no longer leaks to surrounding scope (#1127) - Fix false
UndefinedMethodonapp('encrypter')method calls (#1128) - Fix false
UndefinedMethodon guard methods reached viaauth()narrowing (#1121) - Type the no-arg higher-order
tap()form asHigherOrderTapProxy<T>(#1112) - Accept uppercase
orderBy()direction ('ASC'/'DESC') on Laravel <13.8 (#1111) - Type
Query\Builder::orderBy()direction asasc/descliterals plusSortDirection(#1104) - Accept an
Expressionas the$sqlargument toQuery\Builder::whereRaw()(#1106) - Type
Filesystem::hash()return asnon-empty-string|false(#1109) - Accept a single string column on paginators and
find()(#1105) - Type
firstOrNew/updateOrCreateclosure values on Laravel 13.5+ (#1102) - Type
Connection::cursor()rows asstdClassinstead ofmixed(#1100) - Honor case-insensitive validation taint reads (#1099)
Full Changelog: v3.14.0...v3.14.1