phpcdm é um medidor de densidade de código para PHP
Veja este código:
<?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 );
}
}Parece uma parede de personagens. Na verdade, é uma parede de personagens. Ninguém pode entender facilmente o que o autor desse código significa e, definitivamente, ninguém ficará feliz tentando lê -lo. Além disso, muitas vezes essas paredes de caracteres são o resultado de um mau design de aplicativos.
A densidade de código é uma medida de quantos caracteres são exibidos em uma única página.
O medidor de densidade do código PHP visa ajudar um desenvolvedor a evitar problemas de densidade de código e, eventualmente, manter um aplicativo em boa forma.
O código de exemplo tem densidade de 0,381, que está muito acima do limite padrão (0,2)
Você pode adicionar esta ferramenta como uma dependência local, por projeto e tempo de desenvolvimento, ao seu projeto, usando o Composer:
composer require --dev vantoozz/phpcdmAlém disso, o PHPCDM pode ser instalado globalmente assim:
composer global require --dev vantoozz/phpcdm Analisando o diretório src
./vendor/bin/phpcdm srcSaindo com um código de erro
./vendor/bin/phpcdm src --non-zero-exit-on-violation