Larastan a été créé par Can Vural et Nuno Maduro, les illustrations ont été conçues par @Caneco, est maintenu par Can Vural et Viktor Szépe et est une extension PHPStan pour Laravel. Larastan se concentre sur la recherche d'erreurs dans votre code . Il détecte des classes entières de bogues avant même que vous écriviez des tests pour le code.
Alors que par définition, "l'analyse statique" ne charge aucun code de votre application. Larastan démarre le conteneur de votre application afin qu'il puisse résoudre les types qui ne peuvent être calculés qu'au moment de l'exécution. C'est pourquoi nous utilisons le terme « analyse de code » au lieu de « analyse statique ».
Version Laravel | Version Larastan |
---|---|
< 9 | 1.x |
> 9,0 && <11,15 | 2.x |
11.15+ | 3.0+ |
Nécessite :
1 : Tout d'abord, vous pouvez utiliser Composer pour installer Larastan en tant que dépendance de développement dans votre projet Laravel :
composer require --dev " larastan/larastan:^3.0 "
Vous utilisez Larastan pour analyser les packages Laravel ? Vous devrez peut-être installer
orchestra/testbench
.
2 : Créez ensuite un fichier phpstan.neon
ou phpstan.neon.dist
à la racine de votre application. Cela pourrait ressembler à ceci :
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
Pour toutes les options disponibles, veuillez consulter la documentation PHPStan : https://phpstan.org/config-reference
3 : Enfin, vous pouvez commencer à analyser votre code en utilisant la commande de la console phpstan :
./vendor/bin/phpstan analyse
Si vous obtenez l'erreur Allowed memory size exhausted
, vous pouvez utiliser l'option --memory-limit
pour résoudre le problème :
./vendor/bin/phpstan analyse --memory-limit=2G
Ignorer une erreur spécifique peut se faire soit avec un commentaire php, soit dans le fichier de configuration :
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line
Lorsque les erreurs sont ignorées dans le fichier de configuration de PHPStan, elles sont ignorées en écrivant une expression régulière basée sur les messages d'erreur :
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '
Dans les anciennes bases de code, il peut être difficile de passer du temps à corriger tout le code pour passer un niveau PHPStan élevé.
Pour contourner ce problème, un fichier de base peut être généré. Le fichier de base créera un fichier de configuration avec toutes les erreurs actuelles, afin que le nouveau code puisse être écrit selon des normes plus élevées que l'ancien code. (Documents PHP Stan)
./vendor/bin/phpstan analyse --generate-baseline
Une liste de règles configurables spécifiques à Laravel peut être trouvée ici.
Une liste des fonctionnalités de Larastan peut être trouvée ici.
Une liste des types PHPDoc spécifiques à Larastan peut être trouvée ici.
Une liste de paramètres de configuration personnalisés que vous pouvez utiliser dans votre fichier de configuration PHPStan peut être trouvée ici.
Certaines parties de Laravel sont actuellement trop magiques pour que Larastan/PHPStan puisse les comprendre. Nous avons répertorié les erreurs courantes à ignorer, ajoutez-les si nécessaire
Merci d'avoir envisagé de contribuer à Larastan. Toutes les directives de contribution sont mentionnées ici.
Larastan est un logiciel open source sous licence MIT.