Static Code analysis in Laravel with Larastan
Alpha Olomi

Alpha Olomi @alphaolomi

About: I write code some

Location:
Dar es salaam, Tanzania 🇹🇿
Joined:
Nov 19, 2019

Static Code analysis in Laravel with Larastan

Publish Date: Jun 16 '22
10 0

PHPStan focuses on finding errors in your code. It catches whole classes of bugs even before you write tests for the code.

  • Adds static typing to Laravel to improve developer productivity and code quality
  • Supports most of Laravel's beautiful magic
  • Discovers bugs in your code

larastan logo

Larastan is a phpstan/phpstan wrapper for Laravel. Discover bugs in your code without running it.

Installation



composer require nunomaduro/larastan:^2.0 --dev


Enter fullscreen mode Exit fullscreen mode

Configure



touch phpstan.neon


Enter fullscreen mode Exit fullscreen mode


includes:
    - ./vendor/nunomaduro/larastan/extension.neon

parameters:

    paths:
        - app

    # The level 9 is the highest level
    level: 5

    ignoreErrors:

    excludePaths:
        - ./*/*/FileToBeExcluded.php

    checkMissingIterableValueType: false


Enter fullscreen mode Exit fullscreen mode

Add format script

Update composer.json, add a format script



"scripts": {
  "analyse": "vendor/bin/phpstan analyse",
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover --ansi"
    ],
}


Enter fullscreen mode Exit fullscreen mode

More

Ignoring errors

Ignoring a specific error can be done either with a php comment or in the configuration file:



// @phpstan-ignore-next-line
$test->badMethod();

$test->badMethod(); // @phpstan-ignore-line


Enter fullscreen mode Exit fullscreen mode

When ignoring errors in PHPStan's configuration file, they are ignored by writing a regex based on error messages:

file: phpstan.neon



parameters:
    ignoreErrors:
        - '#Call to an undefined method .*badMethod\(\)#'


Enter fullscreen mode Exit fullscreen mode

Run analyse



composer analyse


Enter fullscreen mode Exit fullscreen mode

analyse terminal logs

Further (Optional)

Try levelling up the stan level from 5 to 6 and fix the code



# from
level: 5
# to
level: 6


Enter fullscreen mode Exit fullscreen mode

Run analyse



composer analyse


Enter fullscreen mode Exit fullscreen mode

Happy Coding!

Comments 0 total

    Add comment