Ссылка на пользовательский php codesniffer нюхает из набора правил, которого нет в каталоге стандартов

У меня есть набор правил с некоторыми пользовательскими сниффами. У меня есть набор правил в моей директории проекта / репозитории, но я не могу понять, как сохранить пользовательские сниффы там.

Если я помещу относительную ссылку в набор правил:

 <rule ref="./MySniffs/foo"/>

тогда он выдает эту ошибку:

PHP_CodeSniffer_Exception: Referenced sniff "./MySniffs/foo"does not exist in C:\path\to\php\php\pear\PHP\CodeSniffer.php

Таким образом, относительный путь определяется из файла CodeSniffer.php, а не из набора правил.

Можно ли сделать так, чтобы набор правил указывал на пользовательский снифф без использования абсолютных путей?

Мне нужно использовать относительные пути, потому что это хранилище с несколькими экземплярами.

1

Решение

Сортировал это.

Это работает. Моя проблема заключалась в том, что имя класса сниффа было названо неправильно.

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

/path/to/project/MyRuleset/ruleset.xml
/path/to/project/MyRuleset/Sniffs/SniffGroup/SniffNameSniff.php

И это заставит работать следующее правило.

 <rule ref="MyRuleset.SniffGroup.SniffName"/>

И это будет имя класса снифф:

class MyRuleset_Sniffs_SniffGroup_SniffNameSniff implements PHP_CodeSniffer_Sniff
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]