gpt4 book ai didi

php - 如果是这样,我可以覆盖每个文件使用的 phpcs 规则集吗?

转载 作者:可可西里 更新时间:2023-11-01 13:21:25 24 4
gpt4 key购买 nike

最近我们迁移到 git 并在我们的中央服务器上实现(暂时发布)接收 Hook 以向开发人员发送报告,并制作了几个工具使我们能够在我们的开发环境中使用 phpcs 自动检查我们的代码标准。

这一切都很好,花花公子,运行良好,但我们希望能够始终依赖于我们的代码标准,而不是忽略每个因逻辑原因不符合的文件。现在,我们有自己的规则集,它覆盖了默认 PEAR 标准中的一些内容,但如果可能的话,我们想更进一步。

我们的问题是,虽然 PEAR 标准对于所有类/业务逻辑都是完美的,但在 View 文件中,我们希望放宽规则,例如,右括号需要在自己的行上。问题是我们主要在这些文件中定义 html,我们拥有的唯一控制结构是简单的 if-else 或 foreach 语句,打开 php,然后添加换行符、右括号、换行符,然后关闭 php 在我看来有点傻。

有效的语法要求:

<?php
}
// end of some if statement ?>

我们希望用于 View 的内容:

<?php } // end of some if statement ?>

这将使我们的代码更具可读性...

我们不喜欢替代语法以及 (if(..): ... endif;),afaik 主要是因为这里的有效性也存在一些问题(都是关于空格的。 ..).

忽略整个文件(使用 //@codingStandardsIgnoreFile)不是我们的选择。

tl;dr

所以我们想做的是为我们的 View 文件定义一个单独的规则集,这样我们仍然有一个标准要遵守,但在这些方面有宽松的规则,所以我们的代码仍然可以阅读。

我对 phpcs 还不是很了解,我自己也找不到任何使用关键字的解决方案,虽然我认为这是合乎逻辑的……也欢迎任何关于制作也符合 PEAR 的整洁 View 文件的建议……

最佳答案

如果您只是想从某些文件中排除几条消息,那么您可以将这些排除项直接放入您的 ruleset.xml 文件中。例如:

<!--
You can also be more specific and just exclude some messages.
Please note that all message-specific ignore patterns are
checked using absolute paths.

The code here will just hide the ContainsVar error generated by the
Squiz DoubleQuoteUsage sniff for files that match either of the two
exclude patterns.
-->
<rule ref="Squiz.Strings.DoubleQuoteUsage.ContainsVar">
<exclude-pattern>*/tests/*</exclude-pattern>
<exclude-pattern>*/data/*</exclude-pattern>
</rule>

我不确定你的 View 文件存储在哪里,但如果你可以使用排除模式(基本上只是一个正则表达式)来匹配它们,那么你就可以放宽对它们的一些规则。

找出 ref=""位的最佳方法是在 View 文件上运行 phpcs 并使用 -s 命令行参数。对于每封邮件,您将获得一个唯一的代码,然后您可以使用该代码将特定的排除模式添加到您的规则集中。

您还可以在规则集文件中执行许多其他操作。 Check out the docs here.

关于php - 如果是这样,我可以覆盖每个文件使用的 phpcs 规则集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com