- Adds static typing to Laravel to improve developer productivity and code quality
- Supports most of Laravel's beautiful magic
- Supports most of OctoberCMS's beautiful magic
- Discovers bugs in your code without running it
Requires:
1: First, you may use Composer to install Larastan as a development dependency into your Laravel project:
composer require --dev lemax10/ocstan
Using Larastan for analysing Laravel packages? You may need to install
orchestra/testbench
.
2: Then, create a phpstan.neon
or phpstan.neon.dist
file in the root of your application. It might look like this:
includes:
- ./vendor/lemax10/ocstan/extension.neon
parameters:
paths:
- app
# The level 8 is the highest level
level: 4
ignoreErrors:
- '#Unsafe usage of new static#'
excludePaths:
- ./*/*/FileToBeExcluded.php
checkMissingIterableValueType: false
For all available options, please take a look at the PHPStan documentation: https://phpstan.org/config-reference
3: Finally, you may start analyzing your code using the phpstan console command:
./vendor/bin/phpstan analyse
If you are getting the error Allowed memory size exhausted
, then you can use the --memory-limit
option fix the problem:
./vendor/bin/phpstan analyse --memory-limit=2G
A list of configurable rules specific to Laravel can be found here.
A list of PHPDoc types specific to Larastan can be found here.
A list of custom config parameters that you can use in your PHPStan config file can be found here.
Some parts of Laravel are currently too magical for Larastan/PHPStan to understand. We listed common errors to ignore, add them as needed.
Thank you for considering contributing 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 the latest announcements or just come say hi!: @enunomaduro, @can__vural.
Do you like this project? Support it by donating
OCStan is an open-sourced software licensed under the MIT license. Larastan is an open-sourced software licensed under the MIT license.