Larastan - Discover bugs in your code without running it. A phpstan/phpstan wrapper for Laravel

Installs: 515 122

Dependents: 49

Suggesters: 1

Stars: 1 557

Watchers: 42

Forks: 89

Open Issues: 66


v0.4.0 2019-08-28 08:22 UTC


Larastan Logo

Larastan Example

Build Status Quality Score Total Downloads Latest Version License

About Larastan

Larastan was created by, and is maintained by Nuno Maduro, and is a phpstan/phpstan wrapper for Laravel. Larastan focuses on finding errors in your code without actually running it. It catches whole classes of bugs even before you write tests for the code.

  • Supports Laravel's beautiful magic.
  • This package is still in development. Please report false positives using GitHub issues.

Installation & Usage


You may use Composer to install Larastan as a development dependency into your Laravel project:

composer require --dev nunomaduro/larastan

Usage in Laravel Applications

Once you have installed Larastan, you may start analyzing your code using the code:analyse Artisan command.

php artisan code:analyse

Custom configuration

If you would like to provide your own configuration, you can create a phpstan.neon or phpstan.neon.dist file in the root of your application. It might look like this:

    - ./vendor/nunomaduro/larastan/extension.neon
    level: 5
        - '#Access to an undefined property App\\Demo\\[a-zA-Z0-9\\_]+::\$[a-zA-Z0-9\\_]+\.#'
        - '#Call to an undefined method App\\Http\\Resources\\DemoResource::DemoMethod\(\)\.#'
        - /*/*/FileToBeExcluded.php

For all available options, please take a look at the PHPStan documentation.

Lumen installation

Add the following lines into your app/Providers/AppServiceProvider:

public function register()
    $this->app->instance('', app()->basePath() . DIRECTORY_SEPARATOR . 'storage');
    $this->app->instance('path.config', app()->basePath() . DIRECTORY_SEPARATOR . 'config');

Usage in Packages for Laravel


Once you have installed Larastan, also install orchestra/testbench:

composer require --dev orchestra/testbench

Then create a file named phpstan.neon.dist in the root of your package with the content:

    - ./vendor/nunomaduro/larastan/extension.neon
    level: 5
        - src

Start analyzing your code using the analyse PHPStan command.

./vendor/bin/phpstan analyse

Rule levels

You can choose from currently 8 levels: (0 is the loosest and 7 is the strictest) by passing --level to analyse command. Default level is 5. You can also use --level max as an alias for the highest level.

php artisan code:analyse --level=max


You can choose which directories you want to analyze, by default, the analyzed directory will be the app.

php artisan code:analyse --paths="modules,app,domain"

Error formats

By default, Larastan outputs found errors into tables grouped by files to be easily human-readable. To change the output, you can use the --error-format CLI option.

The available options are: checkstyle, raw, table, json, prettyJson.

php artisan code:analyse --error-format table


Thank you for considering to contribute to Larastan. All the contribution guidelines are mentioned here.

You can have a look at the CHANGELOG for constant updates & detailed information about the changes. You can also follow the Twitter account for latest announcements or just come say hi!: @enunomaduro.

Support the development

Do you like this project? Support it by donating



Larastan is an open-sourced software licensed under the MIT license.