用于测试的 PHPMD 和 PHPCS Camelcase

Jul*_*oro 3 phpmd phpcs

我刚刚在我的项目中安装了PHPMDPHPCS

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

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

  • phpcs:公共方法名称MyTests::my_test_that_should_pass不是驼峰格式
  • phpmd:该方法my_test_that_should_pass不是骆驼案例

使用 PHPMD,我尝试更改 :.composer/vendor/phpmd/phpmd/src/main/resources/rulesets/controversial.xml并设置allow-underscore-test这里true提到的

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

任何的想法???

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

Gre*_*ood 6

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>
Run Code Online (Sandbox Code Playgroud)

保存该文件并调用它,ruleset.xml或者phpcs.xml然后使用它运行 PHPCS:phpcs /path/to/code --standard=/path/to/ruleset.xml

看看我在评论顶部链接的带注释的规则集文档,因为你可以用这些规则集做更多的事情。