Skip to content

canvural/phpstan-blade-rule

Repository files navigation

phpstan-blade-rule

Build Status PHPStan level max Total Downloads Latest Version License

PHPStan rule for static analysis of Blade templates.


Installation

To use this extension, require it in Composer:

composer require --dev canvural/phpstan-blade-rule

If you also have phpstan/extension-installer installed, then you're all set!

Manual installation

If you don't want to use phpstan/extension-installer, include extension.neon in your project's PHPStan config:

includes:
    - vendor/canvural/phpstan-blade-rule/config/extension.neon
    - vendor/symplify/template-phpstan-compiler/config/services.neon
    - vendor/symplify/astral/config/services.neon

Configuration

You need to configure paths of views for the rule to scan using templatePaths config parameter key. Each path should be a relative path to your phpstan.neon config file.

For example for default Laravel installation, you can configure the paths like so:

parameters:
    templatePaths:
        - resources/views

⚠️ The paths you add to templatePaths should be relative to the root of your app (for example where your vendor folder is or where your phpstan.neon is), and should not contain .. or .

Features

Custom error formatter

We provide custom PHPStan error formatter to better display the template errors. The custom error formatter extends the PHPStan's table error formatter and just adds additional information about template errors to the message.

An example:

To use this custom error formatter you need to run PHPStan with --error-format blade option. For example:

vendor/bin/phpstan analyse src -l8 --error-format blade

Known issues / TODOs

  • Custom directives are not supported. Can be supported by custom bootstrap file maybe.
  • Blade components are not analyzed. Support for it will come soon.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

People:

Resources:

License

The MIT License (MIT). Please see License File for more information.