2

我有一个带有一些自定义嗅探的规则集。我的项目目录/存储库中有规则集,但我不知道如何将自定义嗅探保留在那里。

如果我将相对链接放入规则集中:

 <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 文件而不是从规则集中计算出来的。

是否可以在不使用绝对路径的情况下使规则集指向自定义嗅探?

我需要使用相对路径,因为这是一个具有多个实例的存储库。

4

1 回答 1

3

对其进行排序。

它确实有效。我的问题是嗅探类名称未正确命名。

包含规则集的文件夹必须是嗅探类名称的一部分。以下路径是必需的。

/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
于 2015-02-19T16:19:23.440 回答