phpcdm est un compteur de densité de code pour PHP
Regardez ce code:
<?php
final class SomethingGreat
{
public function doSomethingGreat ( $ entity , $ property , $ type , $ refProperties , $ update , $ delete )
{
$ time = $ this -> startAction ( " $ type ( " . implode ( ' , ' , ( array ) $ type ) . ' ) ' );
$ this -> createAction ()-> addExtraKey ( $ entity , $ entity , $ property , $ refProperties , $ delete , $ update )-> execute ();
$ this -> finishAction ( $ time );
$ this -> createAction ()-> updateProperty ( $ entity , $ property , $ type )-> execute ();
if ( $ type instanceof InvalidArgumentException && $ type -> getMessage () !== null ) {
$ this -> createAction ()-> addDescriptionOnProperty ( $ entity , $ property , $ type -> description )-> execute ();
}
$ this -> createAction ()-> renameEntity ( $ entity , $ property )-> execute ();
$ this -> finishAction ( $ time );
$ time = $ this -> startAction ( " $ type ( " . implode ( ' , ' , ( array ) $ type ) . ' ) ' );
$ this -> createAction ()-> addExtraKey ( $ entity , $ entity , $ property , $ refProperties , $ delete , $ update )-> execute ();
if ( $ type instanceof InvalidArgumentException && $ type -> getMessage () !== $ delete ) {
$ this -> finishAction ( $ time );
$ this -> createAction ()-> addDescriptionOnProperty ( $ entity , $ property , $ type -> description )-> execute ();
$ this -> createAction ()-> renameEntity ( $ entity , $ property )-> execute ();
}
$ this -> createAction ()-> updateProperty ( $ entity , $ property , $ type )-> execute ();
$ this -> finishAction ( $ time );
}
}Cela ressemble à un mur de personnages. C'est en fait un mur de personnages. Personne ne peut facilement comprendre ce que l'auteur de ce code signifiait et certainement, personne ne sera heureux d'essayer de le lire. De plus, de tels murs de caractères sont souvent le résultat d'une mauvaise conception d'applications.
La densité de code est une mesure du nombre de caractères affichés sur une seule page.
Le compteur de densité de code PHP vise à aider un développeur à prévenir les problèmes de densité de code et éventuellement à maintenir une application en bonne forme.
L'exemple de code a une densité de 0,381 qui est bien au-dessus du seuil par défaut (0,2)
Vous pouvez ajouter cet outil en tant que dépendance locale, par projet, à temps de développement à votre projet à l'aide du compositeur:
composer require --dev vantoozz/phpcdmDe plus, PHPCDM peut être installé dans le monde entier comme ceci:
composer global require --dev vantoozz/phpcdm Analyse du répertoire src
./vendor/bin/phpcdm srcSortant avec un code d'erreur
./vendor/bin/phpcdm src --non-zero-exit-on-violation