PHPInsights est un package de composition créé par Nuno Maduro et est un outil fantastique pour commencer à analyser la qualité du code de vos applications PHP.
Que vous soyez un pro des outils de qualité de code ou un débutant complet, PHPInsights a une courbe d’apprentissage constante à laquelle vous pouvez vous adapter rapidement à mesure que vos connaissances s’améliorent. Prêt à l’emploi, il fonctionne avec Laravel, Symfony, Yii, WordPress, Magento 2, etc.
Il vous permet d’avoir un aperçu de la qualité de votre code, de votre style de codage, de l’architecture de votre application et de la complexité de votre code.
Pour démarrer avec ce package, tout ce que vous avez à faire est d’exécuter une commande de composition rapide :
composerrequirenunomaduro/phpinsights--dev
Vous êtes alors prêt à partir, car prêt à l’emploi, il ne nécessite aucune configuration. Vous pouvez analyser des répertoires spécifiques à l’aide de la ligne de commande en exécutant :
./vendor/bin/phpinsights
Cela passera par une série de valeurs par défaut. “renifle” pour vérifier quelques éléments de base pour vous. Vous obtiendrez une sortie qui ressemble à ce qui suit :
89.7% 87.5% 94.1% 90.4%
Code Complexity Architecture Style
Score scale: ◼ 1-49 ◼ 50-79 ◼ 80-100
[CODE] 89.7 pts within 367 lines
Comments ...................................................... 64.6 %
Classes ....................................................... 12.3 %
Functions ...................................................... 1.1 %
Globally ...................................................... 22.1 %
[COMPLEXITY] 87.5 pts with average of 1.38 cyclomatic complexity
[ARCHITECTURE] 94.1 pts within 28 files
Classes ....................................................... 75.0 %
Interfaces ..................................................... 0.0 %
Globally ...................................................... 25.0 %
Traits ......................................................... 0.0 %
[MISC] 90.4 pts on coding style and 0 security issues encountered
À partir de là, vous pouvez appuyer sur Entrée pour voir les problèmes de code qui peuvent être signalés, puis entrer à nouveau pour voir les problèmes architecturaux signalés, et enfin, entrer à nouveau pour voir les problèmes de style de code.
Ensuite, nous pouvons examiner comment nous pourrions améliorer notre code en fonction de l’exécution “sniffs”. Cela peut être fait en configurant la configuration de PHPInsights, en personnalisant ce qui est exécuté et quelques autres options. Pour commencer, créez un phpinsights.php
à la racine de votre projet, nous pouvons commencer à personnaliser ce que nous voulons exécuter.
declare(strict_types=1);
return [
'preset'=>'default',
];
Nous avons différentes options pour le préréglage, selon le framework/plate-forme que vous utilisez. Pour montrer comment cela fonctionne, je vais progressivement construire mon fichier de configuration au fur et à mesure que j’expliquerai chaque partie – afin que vous puissiez voir le parcours que vous pourriez parcourir.
Vous pouvez utiliser laravel
, symfony
, magento2
, drupal
ou default
pour votre préréglage – j’utiliserai Laravel.
declare(strict_types=1);
return [
'preset'=>'laravel',
];
Vous souhaiterez peut-être exclure des répertoires de votre application que vous ne souhaitez pas voir “sniffés” ou analysés. Vous pouvez les ajouter en ajoutant un exclude
options de configuration.
declare(strict_types=1);
return [
'preset'=>'laravel',
'exclude'=> [
'database/*',
],
];
Vous pouvez configurer des informations spécifiques dans votre fichier de configuration, ce qui vous permet de définir les options pour des éléments tels que la longueur de ligne.
declare(strict_types=1);
usePHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff;
return [
'preset'=>'laravel',
'exclude'=> [
'database/*',
],
'config'=> [
LineLengthSniff::class=> [
'lineLimit'=>120,
'absoluteLineLimit'=>160,
],
],
];
Si nous réexécutons PHPInsights maintenant, nous l’exécuterons avec notre configuration, qui sera plus spécifique à nos spécifications configurées.
Votre analyse sera divisée en domaines critiques sur lesquels vous pourrez vous concentrer, en commençant par votre code. Analyser la structure et la qualité de votre code, c’est extrêmement bien documenté sur le site Web PHPInsights vous montrant les sniffs et les informations disponibles si vous souhaitez désactiver ou configurer l’une des classes d’informations exécutées sur votre code.
La prochaine étape sera l’architecture de votre application, qui est moins approfondie que quelque chose comme Déptrac mais couvre quelques domaines spécifiques pour assurer la cohérence et les normes plus que les règles architecturales.
Nous passons ensuite à la complexité de votre code, qui est un aperçu plus petit. Cela calcule votre “complexité cyclomatique”, où plus le score est bas, plus votre code est facile à comprendre. Le code peut être compliqué en termes de fonctionnalité tout en étant facile à comprendre.
Enfin, il vérifie le Style de votre code, qui est un peu comme Normes de codage faciles ou PSR-2 ou PSR-12. Encore une fois, le documentation sur cette idée est complet, avec des exemples de la façon dont vous pouvez configurer des informations spécifiques pour obtenir votre code exactement comme vous le souhaitez.
Contrairement à mon tutoriel sur Laravel Pint, je n’ai pas de configuration par défaut pour PHPInsights, car chaque fois que je l’utilise, je dois le configurer spécifiquement pour le projet ou l’équipe. J’ai récemment succédé à Nuno en tant que mainteneur sur ce projet aux côtés de Chris, et nous avons eu de nombreuses conversations sur la façon d’améliorer ce paquet à l’avenir et sur ce que sera l’avenir du paquet. Il y a des conversations très intéressantes, et nous espérons en avoir plus à vous dire cette année.
Abonnez-vous à notre page Facebook: https://www.facebook.com/mycamer.net
Pour recevoir l’actualité sur vos téléphones à partir de l’application Telegram cliquez ici: https://t.me/+KMdLTc0qS6ZkMGI0
Nous ecrire par Whatsapp : Whatsapp +44 7476844931