Есть еще ряд полезных инструментов, которые могут пригодиться для тестирования качества кода:
PHPDCD - Dead Code Detector (DCD) для PHP. Он сканирует в PHP проекте все неиспользуемые функции и методы и сообщает о них.
$ composer global require 'sebastian/phpdcd=*'
$ sudo ln -s ~/.composer/vendor/bin/phpdcd /usr/local/bin/phpdcd
Пример проверки:
project_directory$ phpdcd .
PHPMD - PHP Mess Detector. Помогает найти в коде потенциальные проблемы, такие как возможные ошибки, субоптимальный код, усложненные выражения, неиспользуемые параметры, методы, свойства.
$ composer global require 'phpmd/phpmd=2.2.*'
$ sudo ln -s ~/.composer/vendor/bin/phpmd /usr/local/bin/phpmd
Пример проверки:
project_directory$ phpmd . text codesize,unusedcode,naming
PHP Depend - показывает качество дизайна кода для расширяемости, повторного использования и сопровождения.
$ composer global require 'pdepend/pdepend=*'
$ sudo ln -s ~/.composer/vendor/bin/pdepend /usr/local/bin/pdepend
Пример запуска
phpDocumentor - инструмент для генерирования документации из PHP кода.
$ composer global require 'phpdocumentor/phpdocumentor=*'
$ sudo ln -s ~/.composer/vendor/bin/phpdoc /usr/local/bin/phpdoc
Пример запуска:
project_directory$ mkdir docs && phpdoc -d . -t docs
PHP CodeBrowser - инструмент для создания HTML презентации PHP кода, где выделены участки с выявленными нарушениями по обеспечению качества инструментов, таких как PHP CodeSniffer или PHPMD.
$ composer global require 'mayflower/php-codebrowser=~1.1'
$ sudo ln -s ~/.composer/vendor/bin/phpcb /usr/local/bin/phpcb
Пример запуска:
project_directory$ mkdir cb && phpcb -s . -o cb
PHP Copy/Paste Detector (PHPCPD) - инструмент для поиска дублированного кода.
$ composer global require 'sebastian/phpcpd=*'
$ sudo ln -s ~/.composer/vendor/bin/phpcpd /usr/local/bin/phpcpd
Пример проверки:
project_directory$ phpcpd .
PHPLOC - инструмент для быстрого измерения размера и анализа структуры PHP проекта.
$ composer global require 'phploc/phploc=*'
$ sudo ln -s ~/.composer/vendor/bin/phploc /usr/local/bin/phploc
Пример проверки:
project_directory$ phploc --log-xml phploc.xml .
PHP CodeSniffer - набор из двух PHP инструментов. Основной - phpcs, позволяет выявить нарушения стандартов кодирования в PHP, CSS и JS файлах. И второй - phpcbf, позволяет проводить автоматическую коррекцию стандартов. PHP CodeSniffer является важным инструментом , благодаря которому код остается чистым и последовательным.
$ composer global require 'squizlabs/php_codesniffer=*'
$ sudo ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin/phpcs
Дополнительная проверка стандарта Symfony2 для PHP CodeSniffer:
$ cd ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards
$ git clone git://github.com/escapestudios/Symfony2-coding-standard.git Symfony2
$ cd Symfony2
$ git checkout 2.0.1
Пример проверки:
project_directory$ find . -type f -name '*.php' -exec phpcs --standard=Symfony2 '{}' ';'