问题标签 [phpcodesniffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
464 浏览

phpstorm - 使用远程解释器在 PhpStorm 中设置 CodeSniffer 时出错

我已经用 php7.2 设置了远程解释器。现在我想设置远程 CodeSniffer。我已经用梨远程设置了它。但是现在我 PhpStorm 不允许我选择远程解释器。它显示以下内容:

CodeSniffer 保存在 IDE 设置中,但选定的解释器在项目设置中定义。请选择另一位口译员或更改此口译员的可见性。

我想知道如何更改 CodeSniffer 的可见性。是否可以使用远程远程 CodeSniffer?

0 投票
1 回答
564 浏览

php - PHP Code Sniffer - 空格和下划线的规则更新和调整

在我开始之前,我真的不希望这篇文章变成“改变你的编码风格”的帖子,而是我如何使用 PHP Code Sniffer 来“检查”我们当前的编码标准。谢谢 :)

由于遗留和个人编码风格,有两条规则我们希望颠倒。而不是仅仅排除,我们要确保相反的情况是正确的。

我们目前正在使用一个配置文件,规则将放在哪里。

控制后没有空间

我们希望确保控制签名和括号之间没有空格。

例如

代替

标记此的当前规则是Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword.

有什么办法可以强制执行其他方式吗?

蛇形案例类名

我们将类名写在snake_casenot中camelCase。该规则目前将其标记为:Squiz.Classes.ValidClassName.NotCamelCaps

再说一次,我们有什么办法可以改变这个?

在文档中苦苦挣扎。

非常感谢您的帮助

0 投票
3 回答
7135 浏览

php - PHPcs xml配置禁用一些规则

我了解如何使用 xml 配置 phpcs,但找不到我如何禁用一些嗅探。这是我当前的配置(甚至不知道这是否正确):

我想禁用这些:

  • [phpcs] @copyright tag must contain a year and the name of the copyright holder所有文档评论嗅探(我不需要它们)
  • [phpcs] PHP version not specified
  • [phpcs] There must be exactly one blank line before the tags in a doc comment
  • [phpcs] The open comment tag must be the only content on the line
  • [phpcs] Missing short description in doc comment
  • [phpcs] The close comment tag must be the only content on the line
  • [phpcs] Line indented incorrectly; expected at least 4 spaces, found 2我用了两个空格!
  • [phpcs] Missing file doc comment
  • [phpcs] Line exceeds 85 characters; contains 91 characters我希望最多 140

如果我想添加更多,我在哪里可以搜索可能的配置?

0 投票
1 回答
1107 浏览

codesniffer - 如何配置 PHP CodeSniffer 以允许具有任何缩进的数组?

我在 XML 中定义了一个自定义规则集。

我习惯tab在每个之后都打一个,=>这样,如果我的数组是多行的,事情就会很好地对齐。这成了一种习惯,我也将它用于单线阵列。因此,多行数组可能看起来像这样

问题是 PHP CodeSniffer 抱怨和 value 之间有超过 1 个空格=>(因为我总是打tab,所以大多数时候会有多个空格 - 当然,这取决于到目前为止的行长度,有时也可以是一个空格)

我尝试将T_ARRAY令牌添加到Generic.WhiteSpace.ScopeIndent规则定义中,但没有帮助

有解决方案吗?

更新

好的,我意识到这Generic.WhiteSpace.ScopeIndent与此无关,因为它Squiz.WhiteSpace.OperatorSpacing是执行此规则的人。现在,根据文档,我无法配置此属性以排除=>操作员。有没有其他方法可以做到这一点?

0 投票
1 回答
1017 浏览

php - 用于多行函数声明的 PHP CodeSniffer 自定义规则集

我试图将 phpcs 配置为在任何地方使用两个空格缩进而不是 4,但我被困在一个地方,我无法覆盖多行函数声明的规则

我的代码是

虽然这段代码给了我错误

多行函数声明没有正确缩进;预计有 6 个空格,但找到了 4 个

我的自定义规则集

0 投票
0 回答
501 浏览

php - 仅对继承的方法禁用 squiz.commenting.functioncomment.missing phpcs 嗅探

我目前正在从事的项目具有以下编码标准。

如果 phpdoc 只是父类方法的 phpdoc 的副本,请不要将其添加到继承的方法中。仅当它不同时才将 phpdoc 添加到继承的方法中。

我正在尝试使用 phpcs 来实现这一点,并希望有条件地启用squiz.commenting.functioncomment.missingphpcs 嗅探。

我知道 phpcs 不会有关于类(及其继承)的运行时信息,所以我不认为在嗅探或规则集级别可以做任何事情。

但是还有其他方法可以覆盖 phpcs 命令输出的输出吗?如果是,那么我可以挂钩该代码,然后可以在需要时有条件地隐藏错误消息。

我看到我们可以使用带有 phpcs 的引导文件。引导文件是否允许我们过滤(或修改)phpcs 输出的错误和警告列表?

0 投票
2 回答
400 浏览

codesniffer - 包括排除规则

我想包含 PSR12 规则集(其中包括规则“PSR1.Methods.CamelCapsMethodName.NotCamelCaps”),但我不希望该规则在特定文件上运行。所以我尝试了以下规则集:

不幸的是,它根本不运行“PSR1.Methods.CamelCapsMethodName.NotCamelCaps”规则(在其余代码中也没有)。

有谁知道如何让这个工作?

0 投票
1 回答
1109 浏览

codesniffer - 使用 PHP CodeSniffer 检查排除文件夹的子目录

我正在尝试配置我的phpcs.xml(PHP CodeSniffer 配置文件),以便我可以将文件夹中的所有目录排除在检查之外,但我指定的目录除外。

对于熟悉 的人来说.gitignore,等价物是这样的,因此“ButIncludeThisOne”包含在版本控制中。

我试过的

这是我的phpcs.xml文件:

使用上面的示例,我可以指定 plugins 文件夹中的每个文件夹,可以使用myplugin,但这并不理想。(我必须记住从检查中排除任何新插件)

如果我删除该exclude-pattern指令,文件myplugin夹中的文件会被嗅探,所以我知道它正在工作。

0 投票
2 回答
45 浏览

php - preg_match 括号中字符串后的第一个字符串

我四处寻找接近此的解决方案,但未能成功找到解决方案。我希望通过 php_codesniffer 清理一些遗留代码,但修复程序不会修复超过 80 列的注释或数组,只是让您了解它们。我有一个适用于评论的解决方案,但我被困在数组的正则表达式上。我想修复的示例行是:

我想要

但我得到了 1。请注意,那里还有另一个相当常见的数组。我只想捕获第一个数组的值,然后我可以从那里将它们分成不同的行。最后,我想分享我对 php codesniffer 项目的解决方案,以便展示如何为 squizlabs 编写新的修复程序。

0 投票
1 回答
782 浏览

codesniffer - PHP CodeSniffer:错误:指定的嗅探代码“Generic.Files.LineEndings.InvalidEOLChar”无效

我尝试在我的 Windows 机器上排除对 EOL 字符的检查总是会导致以下错误消息:

无法弄清楚我做错了什么。我已经通过 composer 安装了 PHP CodeSniffer,并且正在运行 3.4.0 版。