degraciamathieu/php-arguments-detector

Keep control over the complexity of your methods by checking that they do not have too many arguments.

Maintainers

👁 DeGraciaMathieu

Package info

github.com/DeGraciaMathieu/php-arguments-detector

Type:package

pkg:composer/degraciamathieu/php-arguments-detector

Statistics

Installs: 891

Dependents: 6

Suggesters: 1

Stars: 13

Open Issues: 0

v0.5.0 2022-09-01 07:09 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 256bb54996017348e51b2139c105663ba22f99ca

  • De Gracia Mathieu <dev.woop@degracia-mathieu.fr>

This package is auto-updated.

Last update: 2026-06-29 01:12:44 UTC


README

👁 build
👁 packagist
👁 packagist

php arguments detector

The ideal number of arguments for a function is zero. ~ Robert C. Martin

Keep control over the complexity of your methods by checking that they do not have too many arguments with this package.

Installation

Requires >= PHP 7.3

composer require degraciamathieu/php-arguments-detector --dev

Usage

vendor/bin/phpargsdetector inspect {folder}

Options

options description
--min-args= Ignore methods with less than --min-args arguments.
--max-args= Ignore methods with more than --max-args arguments.
--min-weight= Ignore methods with less than --min-weight weight.
--max-weight= Ignore methods with more than --max-weight weight.
--limit= Number of methods displayed.
--without-constructor Ignore method constructors from detection.
--sort-by-weight Sort the results by the weight of methods.

Examples

vendor/bin/phpargsdetector inspect app/Services/Saml/

+------------------------------------------+------------------+-----------+--------+
| Files | Methods | Arguments | Weight |
+------------------------------------------+------------------+-----------+--------+
| app/Services/Saml/SamlMessageFactory.php | __construct | 2 | 2 |
| app/Services/Saml/SamlMessageFactory.php | makeSamlResponse | 2 | 68 |
| app/Services/Saml/SamlSecurity.php | checkSignature | 2 | 18 |
| app/Services/Saml/SamlIssuer.php | find | 1 | 3 |
| app/Services/Saml/SamlKeeper.php | keep | 1 | 1 |
| app/Services/Saml/SamlMessageFactory.php | addAttributes | 1 | 26 |
| app/Services/Saml/SamlMessageFactory.php | sign | 1 | 12 |
| app/Services/Saml/SamlResponder.php | launch | 1 | 10 |
| app/Services/Saml/SamlKeeper.php | has | 0 | 0 |
| app/Services/Saml/SamlKeeper.php | retrieve | 0 | 0 |
+------------------------------------------+------------------+-----------+--------+
Total of methods : 10
vendor/bin/phpargsdetector inspect app/ --limit=3 --min-args=2 --without-constructor

+-------------------------------------------------+---------+-----------+--------+
| Files | Methods | Arguments | Weight |
+-------------------------------------------------+---------+-----------+--------+
| app/Http/Middleware/RedirectIfAuthenticated.php | handle | 3 | 27 |
| app/Http/Controllers/IssuerController.php | update | 2 | 24 |
| app/Http/Controllers/RestrictionController.php | update | 2 | 28 |
+-------------------------------------------------+---------+-----------+--------+
Total of methods : 3
vendor/bin/phpargsdetector inspect app/ --limit=3 --sort-by-weight

+-------------------------------------------------+------------------+-----------+--------+
| Files | Methods | Arguments | Weight |
+-------------------------------------------------+------------------+-----------+--------+
| app/Services/Saml/SamlMessageFactory.php | makeSamlResponse | 2 | 68 |
| app/Http/Controllers/RestrictionController.php | update | 2 | 28 |
| app/Http/Middleware/RedirectIfAuthenticated.php | handle | 3 | 27 |
+-------------------------------------------------+------------------+-----------+--------+
Total of methods : 3

Weight

The weight is the number of arguments multiplied by the number of lines of the method.

The weight of the foo method is 10 : 2 arguments * 5 lines.

class Bar {
 public function foo($a, $b)
 {
 if ($a) {
 //
 }

 return $b;
 }
}

You can use it as a complexity indicator.