存储库在哪里;标准;使用sonar PHP插件的PHP代码嗅探器?

存储库在哪里;标准;使用sonar PHP插件的PHP代码嗅探器?,php,sonarqube,extend,rules,codesniffer,Php,Sonarqube,Extend,Rules,Codesniffer,我已经安装了和 我想添加一个新的CodeSniffer规则,如中所示 但是,我找不到包含现有规则(PEAR、Squiz、Generic…)的“标准”存储库的位置。因此,我不知道在哪里必须添加与sonar设置中定义的xml规则相对应的新文件 也许我遗漏了一些东西,但我在PHP插件的每个文件夹中都找到了,没有找到这个“标准”文件夹。我甚至从插件的.jar文件中提取了内容,甚至查看了磁盘的其余部分,以防代码嗅探器存储库在其他地方 你能帮我吗 谢谢。标准文件夹属于PHP\u CodeSniffer,不属

我已经安装了和

我想添加一个新的CodeSniffer规则,如中所示

但是,我找不到包含现有规则(PEAR、Squiz、Generic…)的“标准”存储库的位置。因此,我不知道在哪里必须添加与sonar设置中定义的xml规则相对应的新文件

也许我遗漏了一些东西,但我在PHP插件的每个文件夹中都找到了,没有找到这个“标准”文件夹。我甚至从插件的.jar文件中提取了内容,甚至查看了磁盘的其余部分,以防代码嗅探器存储库在其他地方

你能帮我吗


谢谢。

标准文件夹属于PHP\u CodeSniffer,不属于SonorCube。它位于PHP_Codesniffer安装中(这取决于您如何在计算机上安装PHP_Codesniffer)。如果找到,则“标准”文件夹位于下

PHP_CodeSniffer/CodeSniffer/Standards/
我猜您希望在多维数据集中执行一条规则。我不知道SonarCube,但我确信您需要在某处配置到PHP_CodeSniffer的路径。完成后,正如文件中所说:

<?xml version="1.0" encoding="UTF-8"?>
<rules>

  <rule key="PEAR.Commenting.FileComment.TagIndent" priority="MAJOR">
    <!-- name, configKey, description are mandatory -->
    <name>Tag comment incorrectly indented</name>
    <configKey>TAG_INDENT</configKey>
    <description>@category tag comment incorrectly indented</description>
  </rule>

  <rule key="...>
    ...
  </rule>

</rules>

标记注释缩进不正确
标记缩进
@类别标记注释缩进不正确
  • 从这里获取规则(PSR1、PSR2或您自己的规则):
  • 按照此处所述将它们复制并粘贴到Codesniffer插件自定义规则中:
  • 下载并恢复配置文件,如1所述

  • SonarQube 4.1.1可以正常工作,我迟到了,但是最新的Sonar现在使用了自己的规则引擎,因此不再依赖CodeSniffer。对我来说,这意味着我不能再在Sonar上运行Symfony2代码标准检查程序,很遗憾…

    谢谢你回答我。但问题是我没有单独安装codesniffer,它包含在Sonar php插件包中。这个插件不仅使用codesniffer,还检查其他规则来分析php项目。这就是为什么使用这个插件似乎比在其他地方安装其他组件更有用的原因。因此,我不完全理解sonar文档,因为我找不到标准的codesniffer文件夹。正如您在这里所看到的[1],PHP_codesniffer和其他工具都包含在PHAR文件中。这是一个包含所有PHP文件的压缩文件。但您也可以看到,它建议您通过PEAR安装自己的外部版本的程序。[1] 是的,这正是我十分钟前的想法,所以我打算在安装pear之后单独安装PHP代码嗅探器(我不想在我的服务器上安装所有这些,但如果我想编辑这些代码嗅探器规则,我似乎没有选择)。谢谢,我安装了PHP代码嗅探器。但现在,即使这样设置配置:sonar.phpCodeSniffer.analyzeOnly=true和sonar.phpCodeSniffer.reportPath=myfile.xml(我尝试直接在sonar项目属性上设置这些参数,如在sonar全局属性中以及通过在接口上定义),sonar也不会从xml文件中检索这些结果,尽管xml文件中存在错误,但sonar仪表板上未显示错误/警告。似乎还有其他人遇到了同样的问题:。
           PEAR           Commenting         FileComment                   TagIndent
    <standard_folder>.<sniff_subfolder>.<sniff_file_without_sniff_suffix>.<error_name>