我有一个带有一些自定义嗅探的规则集。我的项目目录/存储库中有规则集,但我无法弄清楚如何在那里保留自定义嗅探器。
如果我将相对链接放入规则集:
<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文件中得出的,而不是从规则集中得出的。
是否可以在不使用绝对路径的情况下使规则集指向自定义嗅探?
我需要使用相对路径,因为这是一个包含多个实例的存储库。
答案 0 :(得分:2)
对它进行排序。
确实有效。我的问题是嗅探类名称没有正确命名。
包含规则集的文件夹必须是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