Можно ли заменить все проверки PHP-детектором беспорядка проверками PHP-сниффером?

У меня есть проект, который использует как PHPMD (PHP Mess Detector), так и PHPCS (PHP Code Sniffer), что заставило меня задуматься, можно ли все проверки PHPMD заменить проверками PHPCS или лучше использовать оба в тандеме?

Список проверок PHPMD находится здесь: https://phpmd.org/rules/index.html но я не нашел никакой информации о преимуществах, предоставляемых PHPMD.


person Mridang Agarwalla    schedule 01.04.2020    source источник


Ответы (1)


PHP Code Sniffer в основном используется для обнаружения нарушений данного стандарта кодирования, такого как PSR-2. Он имеет конфигурации для разных стилей, и вы можете настроить вручную каждое из правил.

PHP Mess Detector больше ориентирован на качество самого кода - например, сложность функций, ненужные конструкции, правила, определяющие чистый код, и т. Д. Аналогичным образом вы можете настроить каждое из предопределенных правил - независимо от того, хотите ли вы, чтобы они применялись или нет. , и возможный порог для некоторых проверок.

Чтобы ответить на ваши вопросы - да, ВСЕ правила PHP MD могут быть записаны как снифферы CodeSniffer, но пока у кого-то не будет времени и терпения, мы можем продолжать использовать оба :)

Например, некоторые правила PHPMD уже существуют в PHPCS, например правила сложности: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/src/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php

Также для размеров функций / методов и других подобных проверок в PHPMD вот стандарт для PHPCS, в котором есть некоторые из них:

https://github.com/object-calisthenics/phpcs-calisthenics-rules

И вы можете поискать больше, если вам действительно нравится все имитировать. И сами заполните недостающие.

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

person vuryss    schedule 04.04.2020