У нас есть веб-приложение PHP 5, и в настоящее время мы оцениваем PHP CodeSniffer, чтобы решить, улучшают ли принудительные стандарты кода качество кода.
Мы используем subversion для нашего репозитория кода и базы развертывания, и я добавил SVN перехватчик предварительной фиксации, чтобы убедиться, что все зафиксированные файлы не имеют стандартных запахов кодирования. Хук технически работает, но вызывает слишком много головной боли, чтобы быть действительно полезным:
- Если нам нужно исправить экстренную ошибку, которая вызывает перебои в работе сайта, последнее, что нам нужно, — это отказ от коммита из-за какой-то незначительной проблемы с пробелами.
- У нас есть МНОГО устаревшего кода, который иногда содержит сотни ошибок phpcs — нецелесообразно исправлять все ошибки phpcs в этих файлах прямо сейчас. Одним из примеров является файл, полный функций, которые не имеют комментариев. Другой пример: если имя класса начинается с буквы нижнего регистра, выдается ошибка, но исправление этого может потребовать изменения 10, 20+ файлов, которые необходимо будет зафиксировать, которые затем будут сниффаться, рекурсивно...
- У нас есть несколько файлов, которые немного велики (например, 4000 строк кода?), и phpcs проверяет их несколько минут. Задержка коммита на такой срок недопустима.
- Я еще не тестировал это, но я полагаю, что если вы сделаете ветку svn и зафиксируете ее, phpcs проверит все и займет очень много времени, чтобы проверить все 1000 файлов?
Учитывая, что сегодня мы не можем реорганизовать всю нашу кодовую базу. Кто-нибудь знает, как я могу использовать параметр фиксации svn, который сообщит обработчику svn pre-commit не запускать phpcs?
А может быть есть другой способ снять описанные головные боли?