Советы PHP-разработчика

Блог содержащий короткие заметки касающиеся программирования для web.

Автоматическая валидации кода на соответствие стандартам (Yii2) через PHP_CodeSniffer

Автоматическая валидации кода на соответствие стандартам (Yii2) через PHP_CodeSniffer

Стандарты кодирования - это не просто перфикционизм. Их соблюдение помогает превращает ваш код в удобочитаемый, привносит упорядоченность туда, где еще недавно царил хаос, а это в свою очередь облегчает понимание кода и местами избавляет от ошибок. Тестирование, конечно, это не заменит, но привнесет ясности в ваш код. Об этом и поговорим...

Первое, что потребуется для валидации код-стайла - установка PHP_CodeSniffer. Существует несколько вариантов его установки:

  • скачать phar-файл
  • установить через pear
  • установить через composer

Здесь рассмотрю вариант установки пакета через композер, а так как он будет требоваться в разых проектах, то логичнее всего сделать его глобальным. Для начала установим глобально пакет yiisoft/yii2-coding-standards. Это пакет со стандартами Yii framework 2. В зависимостях он содержит сам сниффер squizlabs/php_codesniffer.

composer global require yiisoft/yii2-coding-standards "~2.0.0"

Теперь проверку кода можно осуществить командой

~/.composer/vendor/squizlabs/php_codesniffer/scripts/phpcs --extensions=php --standard=~/.composer/vendor/yiisoft/yii2-coding-standards/Yii2/ path/to/project/sources

А для автоматического рефакторинга можно просто выполнить

~/.composer/vendor/squizlabs/php_codesniffer/scripts/phpcbf --extensions=php --standard=~/.composer/vendor/yiisoft/yii2-coding-standards/Yii2/ path/to/project/sources

В данном случае советую сначала зафиксировать все изменения в систему контроля версии, а после рефакторинга прогнать тесты (если таковые есть) или проверить данные вручную и если все хорошо, то слить данные вместе с помощью git commit --amend -a.

Для себя создал файл refactorer.sh, который кладу в директорию с исходным кодом и запускаю. Ниже представлено содержимое файла.

#!/usr/bin/env sh
~/.composer/vendor/squizlabs/php_codesniffer/scripts/phpcbf --extensions=php --standard=~/.composer/vendor/yiisoft/yii2-coding-standards/Yii2/ ./

Но самый удобный способ проверки и рефакторинга кода не через выполнение команд, а через IDE.

Про настройку PhpStorm я расскажу совсем скоро в другой заметке.

На этом все.

  • 2016-08-22 19:14:46