用于测试的 PHPMD 和 PHPCS Camelcase

标签 phpmd phpcs

我刚刚安装了PHPMDPHPCS与我的项目。

现在,我想对它们进行一些定制,但似乎无法实现。

我收到 2 个我想为我的所有项目删除的警告:

  • phpcs:公共(public)方法名MyTests::my_test_that_should_pass不是 Camel 帽格式
  • phpmd:方法my_test_that_should_pass不在驼色箱中

  • 使用 PHPMD,我尝试更改:.composer/vendor/phpmd/phpmd/src/main/resources/rulesets/controversial.xml并设置allow-underscore-testtrue就像提到的 here

    使用 PHPCS,我真的不知道该怎么做。

    任何的想法???

    https://phpmd.org/rules/controversial.html

    最佳答案

    PHPCS 使用一个名为 ruleset.xml 的文件来允许您创建自己的自定义标准。它的文档在这里:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset

    如果您想要项目的特定标准,您可以在项目的根目录中包含一个 phpcs.xml 文件。它与 ruleset.xml 文件的格式完全相同,甚至可以指定默认情况下需要检查哪些文件和文件夹。相关文档在这里:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file

    我不知道您现在使用的 PHPCS 编码标准是什么,但我假设您使用的是 PSR2。

    如果你运行 phpcs-s选项,您将看到带有错误代码的错误消息,如下所示:Method name "MyTests::my_test_that_should_pass" is not in camel caps format (PSR1.Methods.CamelCapsMethodName.NotCamelCaps) .代码是您需要的位。

    对于您的自定义标准,您需要 PSR2,但不需要 PSR1.Methods.CamelCapsMethodName嗅探,因为您显然不希望 PHPCS 检查驼峰式大小写。因此,使用以下内容创建一个规则集:

    <?xml version="1.0"?>
    <ruleset name="MyStandard">
        <description>My custom coding standard.</description>
        <rule ref="PSR2">
            <exclude name="PSR1.Methods.CamelCapsMethodName"/>
        </rule>
    </ruleset>
    

    保存该文件并将其命名为 ruleset.xmlphpcs.xml然后使用它运行 PHPCS:phpcs /path/to/code --standard=/path/to/ruleset.xml
    看看我在评论顶部链接的带注释的规则集文档,因为您可以使用这些规则集做更多的事情。

    关于用于测试的 PHPMD 和 PHPCS Camelcase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44079845/

    相关文章:

    Eclipse 的 PHP 困惑检测器

    php - 为什么这段代码具有很高的圈复杂度 - 或者它是 Jenkins 中 PHPMD 中的一个错误?

    sublimetext3 - SublimeLinter:模块 phpcs 和 phpmd 不工作

    php - 是否可以将所有 PHP 困惑检测器检查替换为 PHP 代码嗅探器检查?

    如果运行 phpcs,PhpStorm 会抛出错误

    phpstorm - 在 PHP Storm 9 中禁用通知

    php - 将 phpcs 修复程序的结果存储到文件中

    WordPress 编码标准精度嗅探问题