现在,我想稍微定制它们,但似乎无法实现它。
我想要为我的所有项目删除2个警告:
MyTests::my_test_that_should_pass
不是驼峰格式my_test_that_should_pass
不是驼峰式的使用PHPMD,我尝试更改:.composer/vendor/phpmd/phpmd/src/main/resources/rulesets/controversial.xml
并将allow-underscore-test
设置为true
,如提到here
使用PHPCS,我真的不知道该怎么做。
任何想法???
答案 0 :(得分:3)
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.xml
或phpcs.xml
,然后使用它运行PHPCS:phpcs /path/to/code --standard=/path/to/ruleset.xml
请查看我在评论顶部链接的带注释的规则集文档,因为您可以使用这些规则集执行更多操作。