titasgailius/larastan-extended
An opinionated Larastan extension. Automatically parse model's casts() method.
7,618
| Install | |
|---|---|
composer require titasgailius/larastan-extended |
|
| Latest Version: | 0.0.2 |
| License: | MIT |
| Last Updated: | Jun 9, 2025 |
| Links: | GitHub · Packagist |
Maintainer: TitasGailius
Larastan Extended
Larastan Extended is an opinionated Larastan extension that inspects your Laravel application to make static analysis less verbose.
Features
Automatically infer the return type of the casts method.
/**
* Get the attributes that should be cast.
- *
- * @return array{
- * user_id: 'integer',
- * published_at: 'datetime',
- * }
*/
public function casts(): array
{
return [
'user_id' => 'integer',
'published_at' => 'datetime',
];
}
Detect non-nullable $request->user() calls in authenticated routes.
Route::get('posts', function (Request $request) {
- /** @var \App\Models\User */
- $user = $request->user();
-
- return $user->posts;
+ return $request->user()->posts;
})->middleware('auth');
Detect non-nullable relationships.
Route::get('teams/{team}/owner', function (Team $team) {
- /** @var \App\Models\User */
- $owner = $team->owner;
-
- return $owner;
+ return $team->owner;
});
Installation
You can install the package via Composer:
composer require --dev titasgailius/larastan-extended
Usage
Include the extension before the Larastan extension.
includes:
+ - vendor/titasgailius/larastan-extended/extension.neon
- vendor/larastan/larastan/extension.neon
Related Packages
doctrine/dbal
Powerful PHP database abstraction layer (DBAL) with many features for database s...
637,827,751
9,703
laravel/serializable-closure
Laravel Serializable Closure provides an easy and secure way to serialize closur...
413,412,504
609
nunomaduro/collision
Cli error handling for console/command-line PHP applications.
391,429,217
4,660