dry.png

Часто бывает необходимо проверить код проекта на наличие копи-паста, чтобы следовать Принципу DRY(Don’t Repeat Yourself). Автоматизировать этот процесс нам поможет PHP Copy/Paste Detector (PHPCPD).

Установка

  1. Открываем терминал и выполняем следующие команды:

    wget https://phar.phpunit.de/phpcpd.phar
    chmod +x phpcpd.phar
    mv phpcpd.phar /usr/local/bin/phpcpd
  2. Перезапускаем терминал и проверяем, что все корректно установилось вводом команды

    phpcpd

Также, можно использовать phpcpd без установки, для этого нужно просто скачать утилиту и выполнить в интерпретаторе php:

wget https://phar.phpunit.de/phpcpd.phar
php phpcpd.phar

Пример использования

В терминале вводим следующую команду:

phpcpd /Applications/MAMP/htdocs/local-drupal/

Результатом выполнение будет что-то вроде:

phpcpd 2.0.1 by Sebastian Bergmann.
 
Found 39 exact clones with 5981 duplicated lines in 12 files:
 
  -	/Applications/MAMP/htdocs/pp-seo-drupal/modules/simpletest/tests/upgrade/drupal-6.bare.database.php:475-518
 	/Applications/MAMP/htdocs/pp-seo-drupal/modules/simpletest/tests/upgrade/drupal-6.bare.database.php:521-564
 	/Applications/MAMP/htdocs/pp-seo-drupal/modules/simpletest/tests/upgrade/drupal-6.bare.database.php:567-610
 	. . . . . . . . . 
 	0.86% duplicated lines out of 147877 total lines of code.
 
 	Time: 24.67 seconds, Memory: 159.00Mb

Страница проекта на GitHub: https://github.com/sebastianbergmann/phpcpd

Добавить комментарий