Maison >développement back-end >tutoriel php >Utilisez PHPStan pour améliorer la qualité du code PHP
Nous introduisons ici un outil d'analyse statique du code PHP : PHPStan, qui n'a pas besoin d'exécuter le code, mais peut également effectuer une détection stricte de la syntaxe sur le code et essayer de minimiser le code. taux d'erreur d'exécution.
PHPStan
Installation
Actuellement, PHPStanV0.10.2 nécessite un environnement système PHP la version n'est pas inférieure à 7.1. Installer globalement avec Composer :
$ composer global require phpstan/phpstan
Utiliser
L'analyse statique PHPStan est très simple à utiliser :
$ phpstan analyse [-c|--configuration CONFIGURATION] [-l|--level LEVEL] [--no-progress] [--debug] [-a|--autoload-file AUTOLOAD-FILE] [--errorFormat ERRORFORMAT] [--memory-limit MEMORY-LIMIT] [--] [<paths>]...
configuration : Exécuter Chemin d'accès au fichier de configuration ;
niveau : niveau strict, 0-7, le plus grand, le plus strict
aucun progrès : aucune progression n'est affichée ;
debug : mode debug ;
autoload-file : chemin pour charger automatiquement les fichiers
errorFormat : format d'erreur ;
memory-limit : limite de mémoire ;
paths : chemins de fichiers à analyser.
Par exemple, analysez un fichier PHP :
$ phpstan analyse --level=7 --autoload-file=/PATH/TO/vendor/autoload.php /PATH/TO/someone.php
PHPStan dans VSCode
Bien sûr, l'analyse syntaxique doit être fait par l'éditeur Après avoir écrit le code, il est trop fastidieux de passer au terminal de commande pour exécuter phpstan. Voici donc une extension VSCode recommandée : PHP Static Analysis.
PHP Static Analysis
Tout d'abord, utilisez Composer pour installer PHPStan globalement, puis recherchez PHP Static Analysis dans la gestion des extensions ; de VSCode , installez la première extension correspondante ; après avoir rechargé la fenêtre de rechargement de VSCode, l'extension analysera automatiquement le fichier PHP ouvert sous VSCode.
Effet opérationnel :
Par exemple, une variable est déclarée mais pas appelée, une variable non déclarée est appelée, une méthode non définie est appelée, etc. de cette façon, les erreurs seront détectées.
Cependant, pour le dire vaguement, la méthode $this->array() existe réellement, mais elle est implémentée via la méthode magique __call().
PHPStan avec Laravel __call() ou __callStatic().
De nombreux frameworks d'applications utilisent de nombreuses méthodes magiques pour l'élégance, comme Laravel. L'utilisation de PHPStan pour détecter les projets Laravel signalera naturellement de nombreuses erreurs lors de l'appel de méthodes de classe non déclarées. Pour ce problème, vous pouvez utiliser laravel-ide-helper pour réduire les faux positifs.Installer laravel-ide-helper
$ cd /PATH/TO/LARAVEL_PROJECT $ composer require barryvdh/laravel-ide-helperInjecter LaravelIdeHelper
Modifier l'enregistrement dans app/Providers/AppServiceProvider.php Méthode :
<?php ... public function register() { if ($this->app->environment() !== 'production') { $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); } // ... }Generate _ide_helper.php
$ cd /PATH/TO/LARAVEL_PROJECT $ php artisan ide-helper:generateÀ l'heure actuelle, la classe Facade du framework Laravel et les méthodes statiques initialement obtenues via __callStatic() sont toutes déclarées dans _ide_helper.php , introduisant le fichier _ide_helper.php lorsque PHPStan détecte le code du projet Laravel peut réduire les faux positifs.
Configuration PHPStan
Dans le répertoire racine du projet Laravel, créez un nouveau fichier phpstan.neon :
parameters: autoload_files: - %currentWorkingDirectory%/_ide_helper.phpDans le répertoire racine du Projet Laravel, exécuter Lors de l'exécution de la commande phpstan, la configuration phpstan.neon sera automatiquement utilisée. Tutoriel recommandé : "
PHP
"Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!