Comments 7

С кодстайлом лучше все-таки php-cs-fixer или даже оба (хотя после фиксера phpcs только длину строк ловит)

Фиксер, на мой взгляд, надо запускать руками разработчику, а не исправлять код в процессе проверок.
Мало ли что исправиться не так как положено.

никто не говорит о фиксе в ходе проверок. На CI надо с --dry-run запускать, а разработчик может себе git hook какой сделать что бы не забывать.

Я тут кстати недавно выдумал костыльный pre-commit (not production mode :D):

#!/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, файл из версии индекса — битый):
image
Only those users with full accounts are able to leave comments. Log in, please.