Le package php-arguments-detector permet de garder le contrôle sur la complexité de vos méthodes en s'assurant qu’elles ne possèdent pas trop d’arguments.
Dans son livre “Coder Proprement”, Robert C. Martin propose la maxime suivante : “The ideal number of arguments for a function is zero.”.
Une méthode avec plusieurs arguments sera probablement problématique et difficile à comprendre : que fait cette méthode, à quoi correspondent ces arguments, pourquoi dans ce sens, sont-ils optionnels ?
Inévitablement, les arguments augmentent les cas d’utilisation d’une méthode, la rendant à la fois complexe et plus difficile à tester de manière exhaustive.
Ainsi, pour ce quelques raisons, il sera profitable de garder un œil sur les arguments de vos méthodes et quand cela est possible de priviligier les méthodes niladique (sans argument).
Usage
Le package nécessite au minimum une version 7.3 de PHP, ce choix de ne pas utiliser PHP 8 fut volontaire afin de proposer le package au plus grand nombre.
Une fois installé dans vos dépendances :
1composer require degraciamathieu/php-arguments-detector --dev
Il suffira de lancer la commande inspect
depuis le bin phpargsdetector
pour analyser votre application :
1vendor/bin/phpargsdetector inspect app/
Le package propose plusieurs options pour affiner la détection.
Par exemple, si vous souhaitez afficher les 5 méthodes avec le plus d’arguments en excluant les constructeurs :
1vendor/bin/phpargsdetector inspect app/ --limit=5 --without-constructor
1+--------------------------------------------------+-------------------+-----------+--------+2| Files | Methods | Arguments | Weight |3+--------------------------------------------------+-------------------+-----------+--------+4| app/Actions/Youtube/LinkYoutubeCreator.php | execute | 5 | 45 |5| app/Actions/Twitch/LinkTwitchCreator.php | execute | 4 | 36 |6| app/Http/Middleware/RedirectIfAuthenticated.php | handle | 3 | 27 |7| app/Actions/Statistics/FillCreatorStatistics.php | fill | 2 | 20 |8| app/Actions/Youtube/LinkYoutubeCreator.php | retrieveChannelId | 2 | 14 |9+--------------------------------------------------+-------------------+-----------+--------+
Toutes les options disponibles sont accessibles sur le readme du package.
A lire
Autres articles de la même catégorie

Une façon différente d’organiser son application avec Laravel Actions
Présentation du paquet lorisleiva/laravel-actions mettant en avant une façon différente d'organiser le code

Marc COLLET

Artisan Benchmark
Découvrez artisan-benchmark, un package efficace pour mesurer le temps d'exécution, la mémoire consommée et les requêtes exécutées par vos commandes !

Mathieu De Gracia

Valider des numéros de téléphone avec Laravel
Simplifier la validation des numéros de téléphone grâce au package laravel-phone

Rémy Guillermic