nunomaduro/larastan

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

Installs: 281 627

Dependents: 31

Suggesters: 0

Stars: 1 338

Watchers: 42

Forks: 79

Open Issues: 73


README

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

Requires:

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:

includes:
    - ./vendor/nunomaduro/larastan/extension.neon
parameters:
    level: 5
    ignoreErrors:
        - '#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\(\)\.#'
    excludes_analyse:
        - /*/*/FileToBeExcluded.php

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

Usage in Packages for Laravel

Once you have installed Larastan, create a file phpstan.neon.dist on the root of your package with the content:

includes:
    - ./vendor/nunomaduro/larastan/extension.neon
parameters:
    level: 5
    paths:
        - 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

Paths

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

Contributing

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

Credits

License

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