phpcdm - это измеритель плотности кода для PHP
Посмотрите на этот код:
<?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 );
}
}Это похоже на стену персонажей. На самом деле это стена персонажей. Никто не может легко понять, что означал автор этого кода, и, безусловно, никто не будет счастлив, пытаясь прочитать его. Более того, часто такие стены символов являются результатом плохого дизайна приложений.
Плотность кода - это мера того, сколько символов отображается на одной странице.
Измеритель плотности кода PHP направлен на то, чтобы помочь разработчику предотвратить проблемы с плотностью кода и в конечном итоге сохранить приложение в хорошей форме.
Пример кода имеет плотность 0,381, что намного выше порога по умолчанию (0,2)
Вы можете добавить этот инструмент в качестве локальной зависимости от времени разработки от вашего проекта с помощью композитора:
composer require --dev vantoozz/phpcdmКроме того, PHPCDM может быть установлен во всем мире, как это:
composer global require --dev vantoozz/phpcdm Анализ каталога src
./vendor/bin/phpcdm srcВыйти с кодом ошибки
./vendor/bin/phpcdm src --non-zero-exit-on-violation