Автоматизована перевірка та правка коду при комітах

Автоматизована перевірка та правка коду при комітах

Viktor

      Дотримання стандартів написання коду, як на мене, питання,  не те щоб надто болюче для розробників-початківців, але таке, що по недосвідченості останніх, викликає лише роздратування та псує настрій. Звісно, з часом  та досвідом такі незручності зникнуть, проте навіть матьорі кодери не застраховані від механічних помилок. На допомогу приходить PHP_CodeSniffer, який дозволяє перевірити на валідність код, згідно дотримуваних стандартів. PHPCS “з коробки” не підтримує Drupal Codding Standard (команда $ phpcs -i покаже всі підтримувані стандарти), тому додатково потрібно підключити необхідну бібліотеку. Як встановити та налаштувати PHPCS, чудово описано тут.

Важливо! Останні версії PHPCS працюють лише з  Coder 8.x-2.x!

 

    Автоматизована перевірка коду перед комітом

 

     Проте перевіряти код, вводячи вручну команду в терміналі, не зовсім зручно та, зрештою, можна просто забути це зробити і відправити його в загальний репозиторій. Для автоматизації процесу перевірки були написані певні git hooks.  Звідси можна завантажити готове рішення для нашої задачі. Для інтеграції цього хука потрібно покласти файл pre-commit в папку hooks вашого git репозиторію (.git/hooks). Також в цьому ж файлі потрібно вказати, якого кодінг стандарту дотримуватись:

 PHPCS_CODING_STANDARD=Drupal

Тепер при спробі зробити commit ваш код буде перевіряти PHPCS та у разі невідповідності видавати таблицю з допущеними помилками 

 

    Автоматизована правка коду перед комітом (Code Beautifier and Fixer)

 

     Річ, звісно, ризикована, так як машини можуть інколи помилятись і ще невідомо, як сильно. Проте можливо хтось захоче взяти і собі на озброєння цю технологію. PHPCS вміє виправляти помилки. Для автоматичної правки всіх можливих помилок замість команди phpcs використовуйте phpcbf. Детальніше тут. Цю опцію також можна інтегрувати  в git за допомогою чудового хука, який так само потрібно покласти в теку .git/hooks , надати йому правильні (chmod +x .git/hooks/pre-commit) права та відредагувати, вказавши актуальні шляхи і тип кодинг стандарту. Тепер перед коммітом ви отримаєте таблицю з виправленими помилками та з тими, які треба випавити вручну, наприклад написати коментар до функції.