我想通过修改默认参数来扩展PHP codesniffer的sonar插件

我想通过修改默认参数来扩展PHP codesniffer的sonar插件,php,plugins,sonarqube,Php,Plugins,Sonarqube,在声纳测试期间,我只想改变一些规则,所以我从 并对规则进行更改 这是不正确的,而且有效。因为他们给出了我改变的参数 但现在我想换个位置 函数CallSignatureIndent 并希望为其传递一个参数 我做的每一个结果都会导致创建一个新的插件,那么还有其他方法吗 <rule key="PEAR.Functions.FunctionCallSignature.Indent" priority="MAJOR"> <category name="Maintainability"/

在声纳测试期间,我只想改变一些规则,所以我从

并对规则进行更改

这是不正确的,而且有效。因为他们给出了我改变的参数

但现在我想换个位置

函数CallSignatureIndent 并希望为其传递一个参数

我做的每一个结果都会导致创建一个新的插件,那么还有其他方法吗

<rule key="PEAR.Functions.FunctionCallSignature.Indent" priority="MAJOR">
<category name="Maintainability"/>
<name>CustomFunctionCallSignatureIndent</name>
<configKey>FUNCTION_CALL_SIGNATURE_INDENT</configKey>
<description><![CDATA[Multi-line function call not indented correctly; expected %s spaces but found %s]]></description>
<param>
  <key>indent</key>
  <description>The number of spaces code should be indented.</description>
  <defaultValue>4</defaultValue>
</param>

CustomFunctionCallSignatureIndent
函数调用签名缩进
缩进
代码中的空格数应缩进。
4.


这是我在rules.xml中的条目。不,你不需要为此编写声纳插件。你只需要:

  • 在FunctionCallSignatureIndent中进行更改
  • 添加新规则,如中所述
  • 对于此新规则,添加一个“”标记,如您在的PHPMD示例中所见

  • 然后,在重新启动Sonar之后,您应该能够在Sonar Web UI中自定义此规则

    嘿,法布里斯谢谢你的回复,让我更新我的问题,这样你就可以得到我想说的。在做了这些更改之后,我可以在概要文件编辑器中更新pamameter值,但是在重建项目之后,对代码冲突没有任何影响。您在PHP嗅探本身的代码中做了更改吗?(在PHPCodeSniffer安装中)我所做的唯一更改是在扩展文件中添加一个参数。如果需要进行任何更改,请建议我。是的,如果要添加不存在的参数,显然必须修改PHPCodeSniffer的源代码。您修改的XML文件只是Sonar和PHPCodeSniffer之间的桥梁:它告诉Sonar“PEAR.Functions.FunctionCallSignature.Indent”有一个参数。但是如果实际的PHPCodeSniffer检查器没有这个参数,这实际上是无用的。好吧,我刚刚得到我只是忘记了最初的步骤。谢谢你的帮助。