Comments 7
С кодстайлом лучше все-таки php-cs-fixer или даже оба (хотя после фиксера phpcs только длину строк ловит)
Фиксер, на мой взгляд, надо запускать руками разработчику, а не исправлять код в процессе проверок.
Мало ли что исправиться не так как положено.
никто не говорит о фиксе в ходе проверок. На CI надо с --dry-run
запускать, а разработчик может себе git hook какой сделать что бы не забывать.
Я тут кстати недавно выдумал костыльный pre-commit (not production mode :D):
Проверяет файлы, которые изменились (удаленные игнорирует) и были добавлены в индекс (планируют попасть в коммит как раз).
При этом делает проверку, когда забываешь сделать git add src/ после правки CS (реальный файл имеет поправленный CS, файл из версии индекса — битый):
#!/bin/bash
echoerr() { echo -e "\e[1;31m$@\e[0m" 1>&2; }
git diff --diff-filter=MAT --name-only --cached | while read line;
do
filename=$(tempfile)$(echo $line | sed 's/\//_/g');
git show :$line > $filename;
if ! eval 'phpcs --standard=./vendor/escapestudios/symfony2-coding-standard/Symfony2 --extensions=php --ignore=Tests $filename > /dev/null'; then
if eval 'phpcs --standard=./vendor/escapestudios/symfony2-coding-standard/Symfony2 --extensions=php --ignore=Tests $line > /dev/null'; then
echoerr "!!!!ВНИМАНИЕ!!!!";
echoerr "Кажется вы забыли сделать git add $line после того как сделали fix кодинг стайла, посмотрите git status:";
git status;
else
#print more information about cs
phpcs --standard=./vendor/escapestudios/symfony2-coding-standard/Symfony2 --extensions=php --ignore=Tests $line
fi;
exit 1;
fi;
rm $filename;
done
Проверяет файлы, которые изменились (удаленные игнорирует) и были добавлены в индекс (планируют попасть в коммит как раз).
При этом делает проверку, когда забываешь сделать git add src/ после правки CS (реальный файл имеет поправленный CS, файл из версии индекса — битый):
Ну вот вам мой прекоммит хук для php-cs-fixer. Только вместо "ошибок" что мы не сделали git add он сам это делает.
посмотрите phpro/grumphp, решает уже все из коробки
До кучи можно добавить проверку чексумм вендоров — github.com/sensiolabs/checksums
Sign up to leave a comment.
Малюсенький CI вашего Symfony проекта за 2 минуты