Skip to content
Discover bugs in your code without running it - phpstan wrapper for Laravel.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Add syntax highlight to issue template Feb 17, 2019
config Adds support for paginators Dec 2, 2018
src Can't stand compressed string concat but I should Feb 15, 2019
.gitattributes Syntax highlight for neon Nov 28, 2018
.scrutinizer.yml Update .scrutinizer.yml Dec 20, 2018
.travis.yml Check only executable bits Dec 22, 2018 Updates changelog and bumps version Jan 23, 2019
bootstrap.php fix: some internal errors with the lumen framework Feb 15, 2019
composer.json Upgrade to Laravel 5.8 Jan 23, 2019
extension.neon Add support for the trans() helper return types Dec 20, 2018
phpstan.neon.dist ignores error Oct 9, 2018
phpunit.xml.dist Adds first version Jun 29, 2018

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.

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:

    - ./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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.