Стандарты кодирования: есть что понюхать

Опубликовано: 2021-07-19

Некоторые вопросы существуют еще во время разработки программного обеспечения. Должен ли я делать отступ с помощью табуляции или пробелов? Так ли важны стандарты кодирования? Неужели я должен тратить время на какие-то произвольные правила?

Соответственно, ответы на эти вопросы следующие: вкладки (очевидно), да (менее очевидно) и нет (вроде как).

PHP-коды

Важность стандартов подробно освещалась другими авторами, поэтому я не буду здесь вдаваться в подробности, но суть в следующем: внутренняя согласованность желательна в рамках данного проекта, поскольку она улучшает читаемость, ограничивает неожиданности и может способствовать надежность кода.

Вам не нужно «тратить время» на соблюдение стандартов, потому что есть способы применять эти стандарты автоматически!

Здесь я расскажу о способах быстрой и простой настройки автономного инструмента PHP Codesniffer (PHPCS) для проектов WordPress. Это позволит вам:

  • Составьте отчет о соответствии стандартам в вашем коде
  • Автоматически решать широкий спектр проблем соответствия

В следующих примерах мы будем внедрять стандарты WordPress.

Установка

Предпосылки:

  • Терминальный доступ (пользователи Windows могут успешно использовать Bash для Windows, но это не проверено)
  • Менеджер пакетов Composer

Хотя PHPCS можно установить отдельно, он не поддерживает WordPress по умолчанию. Для этого мы собираемся установить быстро названные стандарты кодирования WordPress (WPCS).

Сначала перейдите туда, где вы хотите установить WPCS для глобального использования.

 $> cd / path / to / где угодно

Установите пакет с композитором.

 $> композитор создать проект wp-coding-standard / wpcs --no-dev

На этом этапе мы могли бы погрузиться в работу и начать использовать WPCS, но есть несколько флагов, которые нужно устанавливать каждый раз, когда мы запускаем команду. Для удобства создадим пару псевдонимов.

Откройте .profile из вашего домашнего каталога в вашем любимом редакторе (или создайте его, если он не существует) и добавьте следующее:

 # Стандарты кодирования WP
экспорт PATH = $ PATH: "/ путь / к / где / wpcs / vendor / bin"
псевдоним wpcs = 'phpcs --standard = WordPress --extensions = php
псевдоним wpcbf = 'phpcbf --standard = WordPress --extensions = php

Мы добавили здесь два псевдонима - один для phpcs (который находит и отображает нарушения соответствия) и один для phpcbf (который автоматически исправляет различные проблемы, обнаруженные phpcs). Дополнительные параметры делают следующее:

–Standard = WordPress - применяет стандарты WordPress (заданные в WPCS)

–Extensions = php - таргетинг только на файлы PHP (по умолчанию PHPCS нацелен на PHP, CSS и JS)

Перезагрузите Терминал (или исходный .profile ), и WPCS готов обнюхивать ваш код!

Нюхать

Чтобы создать отчет об обнаружении файла, выполните следующее:

 $> wpcs /path/to/your/php/project/file.php

Это выведет отчет в терминал. В качестве альтернативы вы можете вывести это в файл:

 $> wpcs /path/to/your/php/project/file.php> output.txt

Отчет обнюхивания

Ваш вывод WPCS sniff будет примерно таким:

Отчет PHP Codesniffer

Здесь упаковано изрядное количество информации, но она довольно четко изложена. Давайте рассмотрим, что у нас есть:

  • Целевой файл
  • Сводная информация о количестве обнаруженных ошибок / предупреждений и количестве затронутых строк.
  • Список обнаруженных проблем с уровнями серьезности и описаниями.
  • Указание того, сколько проблем phpcbf может решить автоматически (в основном все проблемы с [x])

Как и следовало ожидать, PHPCS не может учесть всего. Он не будет делать предположений о выборе знаков препинания в комментариях и определенных видах форматирования кода, но может решить широкий спектр проблем за вас.

Приятным бонусом является то, что правила WordPress позволяют PHPCS обнаруживать специфические для WordPress проблемы, включая возможное неправильное использование функций.

Фиксация

Автоматическое решение проблем не может быть проще:

 $> wpcbf /path/to/your/php/project/file.php

Выводится краткое резюме:

Вывод PHP Code Fixer

Любые оставшиеся ошибки необходимо будет исправить вручную, но обычно вы обнаружите, что значительная часть проблем уже решена.

Пользовательские правила

Вы также можете настроить набор правил, исключить определенные каталоги из вашего проекта и так далее. В PHPCS аннотированных Ruleset документов приведены примеры всех изменений , которые можно сделать, но в общих чертах вам просто:

  1. Создать файл набора правил
  2. Ссылка на него в команде PHPCS

Вот пример файла набора правил:

 <? xml version = "1.0"?>
<ruleset name = "Стандарты кодирования WordPress">
    <description> Индивидуальные стандарты WordPress. </description>
    <rule ref = "WordPress">
        <exclude name = "Generic.Formatting.MultipleStatementAlignment.NotSameWarning" />
    </rule>
    <exclude-pattern> * / bin / * </exclude-pattern>
    <exclude-pattern> * / node_modules / * </exclude-pattern>
    <exclude-pattern> * / tests / * </exclude-pattern>
</ruleset>

В этом примере мы сделали следующее:

  • Ссылка на набор правил WordPress (из WPCS)
  • Исключено правило
  • Исключены некоторые каталоги

Файл набора правил может быть помещен в любой каталог, из которого вы вызываете WPCS (обычно разумно использовать корень проекта, темы или подключаемого модуля), и на него можно ссылаться с помощью флага. Обновите флаг –standard в вашем .profile, например:

 # Стандарты кодирования WP
экспорт PATH = $ PATH: "/ путь / к / где / wpcs / vendor / bin"
псевдоним wpcs = 'phpcs --standard = codesniffer.ruleset.xml --extensions = php
псевдоним wpcbf = 'phpcbf --standard = codesniffer.ruleset.xml --extensions = php

Чтобы проверить, какие правила помечаются при запуске WPCS, просто запустите его с флагом -s следующим образом:

 $> wpcs -s /path/to/your/php/project/file.php

Что дальше?

Приведенное выше руководство даст вам возможность выполнять специальные проверки соответствия стандартам в вашем проекте WordPress, но если вы хотите интегрировать его в свой стандартный цикл разработки, следующим логическим шагом будет автоматизация.

Рассмотрите возможность интеграции PHPCS в средство выполнения задач, такое как gulp или grunt (модули PHPCS доступны для обоих), или иным образом интегрируйте его в конвейер сборки CI / CD.

Если вам нужна помощь в веб-разработке и дизайне, свяжитесь с нами сегодня.


Если вам нужна помощь, не стесняйтесь обращаться к нам.