У меня есть набор правил с некоторыми пользовательскими сниффами. У меня есть набор правил в моей директории проекта / репозитории, но я не могу понять, как сохранить пользовательские сниффы там.
Если я помещу относительную ссылку в набор правил:
<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, а не из набора правил.
Можно ли сделать так, чтобы набор правил указывал на пользовательский снифф без использования абсолютных путей?
Мне нужно использовать относительные пути, потому что это хранилище с несколькими экземплярами.
Сортировал это.
Это работает. Моя проблема заключалась в том, что имя класса сниффа было названо неправильно.
Папка, содержащая набор правил, должна быть частью имени класса сниффа. Следующие пути обязательны.
/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
Других решений пока нет …