phpcs - 为自定义规则集

时间:2015-06-08 08:20:32

标签: php coding-style phpcodesniffer

我正在使用自定义规则集配置phpcs以使用WordPress coding standards

我的phpcs.xml看起来像这样

<?xml version="1.0"?>
<ruleset name="Bulk Delete">
    <description>Bulk Delete coding standard</description>

    <file>./</file>

    <!--Docs issues should be shown as warnings -->
    <rule ref="WordPress-Docs">
        <type>warning</type>
    </rule>
</ruleset>

WordPress-Docs是自定义规则集defined,是WordPress coding standard嗅探的一部分,我希望此规则集中的所有邮件都标记为warnings,而不是{{1 }}

PHP CodeSniffer wiki中的Annotated ruleset file说我可以做这样的事情。

errors

但这只有在你直接包含嗅觉时才有效。但在我的情况下,我想让这个工作用于使用<!-- Here we are including a specific sniff but also changing the error message of a specific message inside the sniff. Note that the specific code for the message, which is CommentFound in this case, is defined by the sniff developer. You can display these codes by using the -s command line argument when checking a file. Also note that this message has a variable inside it, which is why it is important that sniffs use a printf style format for their error messages. We also drop the severity of this message from the default value (5) so that it is hidden by default. It can be displayed by setting the minimum severity on the PHP_CodeSniffer command line. This is great if you want to use some messages only in code reviews and not have them block code commits. --> <rule ref="Generic.Commenting.Todo.CommentFound"> <message>Please review this TODO comment: %s</message> <severity>3</severity> </rule> 标记包含的自定义规则集。

有可能吗?

1 个答案:

答案 0 :(得分:1)

不,这在PHP_CodeSniffer中是不可能的。您只能更改特定消息代码的类型,而不能更改整个规则集,类别或嗅探文件。

如果您可以控制WordPress标准,则可以使用自定义配置选项让用户指定Doc标准是否应该使用错误或警告,但这将是一个非常具体的用例。

如果没有这种控制水平,你在一次运行中就无法做任何事情。你必须做2次跑步;第一个除了Doc标准以外的所有内容,第二个只有Doc标准。第一个是您要更正的规则错误列表,第二个是您的信息列表。

这不是一个好的解决方案,但是如果没有核心的PHP_CodeSniffer更改,我无法想到做任何事情,你可以在这里建议:https://github.com/squizlabs/PHP_CodeSniffer/issues