2015-02-19 8 views
1

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

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

<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, а не из набор правил.

Возможно ли сделать пункт набора правил для пользовательского нюха без использования абсолютных путей?

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

ответ

2

Отсортировано.

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

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

/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