问题标签 [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.
phpstorm - 使用远程解释器在 PhpStorm 中设置 CodeSniffer 时出错
我已经用 php7.2 设置了远程解释器。现在我想设置远程 CodeSniffer。我已经用梨远程设置了它。但是现在我 PhpStorm 不允许我选择远程解释器。它显示以下内容:
CodeSniffer 保存在 IDE 设置中,但选定的解释器在项目设置中定义。请选择另一位口译员或更改此口译员的可见性。
我想知道如何更改 CodeSniffer 的可见性。是否可以使用远程远程 CodeSniffer?
php - PHP Code Sniffer - 空格和下划线的规则更新和调整
在我开始之前,我真的不希望这篇文章变成“改变你的编码风格”的帖子,而是我如何使用 PHP Code Sniffer 来“检查”我们当前的编码标准。谢谢 :)
由于遗留和个人编码风格,有两条规则我们希望颠倒。而不是仅仅排除,我们要确保相反的情况是正确的。
我们目前正在使用一个配置文件,规则将放在哪里。
控制后没有空间
我们希望确保控制签名和括号之间没有空格。
例如
代替
标记此的当前规则是Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword
.
有什么办法可以强制执行其他方式吗?
蛇形案例类名
我们将类名写在snake_case
not中camelCase
。该规则目前将其标记为:Squiz.Classes.ValidClassName.NotCamelCaps
再说一次,我们有什么办法可以改变这个?
在文档中苦苦挣扎。
非常感谢您的帮助
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
如果我想添加更多,我在哪里可以搜索可能的配置?
codesniffer - 如何配置 PHP CodeSniffer 以允许具有任何缩进的数组?
我在 XML 中定义了一个自定义规则集。
我习惯tab
在每个之后都打一个,=>
这样,如果我的数组是多行的,事情就会很好地对齐。这成了一种习惯,我也将它用于单线阵列。因此,多行数组可能看起来像这样
问题是 PHP CodeSniffer 抱怨和 value 之间有超过 1 个空格=>
(因为我总是打tab
,所以大多数时候会有多个空格 - 当然,这取决于到目前为止的行长度,有时也可以是一个空格)
我尝试将T_ARRAY
令牌添加到Generic.WhiteSpace.ScopeIndent
规则定义中,但没有帮助
有解决方案吗?
更新
好的,我意识到这Generic.WhiteSpace.ScopeIndent
与此无关,因为它Squiz.WhiteSpace.OperatorSpacing
是执行此规则的人。现在,根据文档,我无法配置此属性以排除=>
操作员。有没有其他方法可以做到这一点?
php - 用于多行函数声明的 PHP CodeSniffer 自定义规则集
我试图将 phpcs 配置为在任何地方使用两个空格缩进而不是 4,但我被困在一个地方,我无法覆盖多行函数声明的规则
我的代码是
虽然这段代码给了我错误
多行函数声明没有正确缩进;预计有 6 个空格,但找到了 4 个
我的自定义规则集
php - 仅对继承的方法禁用 squiz.commenting.functioncomment.missing phpcs 嗅探
我目前正在从事的项目具有以下编码标准。
如果 phpdoc 只是父类方法的 phpdoc 的副本,请不要将其添加到继承的方法中。仅当它不同时才将 phpdoc 添加到继承的方法中。
我正在尝试使用 phpcs 来实现这一点,并希望有条件地启用squiz.commenting.functioncomment.missing
phpcs 嗅探。
我知道 phpcs 不会有关于类(及其继承)的运行时信息,所以我不认为在嗅探或规则集级别可以做任何事情。
但是还有其他方法可以覆盖 phpcs 命令输出的输出吗?如果是,那么我可以挂钩该代码,然后可以在需要时有条件地隐藏错误消息。
我看到我们可以使用带有 phpcs 的引导文件。引导文件是否允许我们过滤(或修改)phpcs 输出的错误和警告列表?
codesniffer - 包括排除规则
我想包含 PSR12 规则集(其中包括规则“PSR1.Methods.CamelCapsMethodName.NotCamelCaps”),但我不希望该规则在特定文件上运行。所以我尝试了以下规则集:
不幸的是,它根本不运行“PSR1.Methods.CamelCapsMethodName.NotCamelCaps”规则(在其余代码中也没有)。
有谁知道如何让这个工作?
codesniffer - 使用 PHP CodeSniffer 检查排除文件夹的子目录
我正在尝试配置我的phpcs.xml
(PHP CodeSniffer 配置文件),以便我可以将文件夹中的所有目录排除在检查之外,但我指定的目录除外。
对于熟悉 的人来说.gitignore
,等价物是这样的,因此“ButIncludeThisOne”包含在版本控制中。
我试过的
这是我的phpcs.xml
文件:
使用上面的示例,我可以指定 plugins 文件夹中的每个文件夹,但可以使用myplugin
,但这并不理想。(我必须记住从检查中排除任何新插件)
如果我删除该exclude-pattern
指令,文件myplugin
夹中的文件会被嗅探,所以我知道它正在工作。
php - preg_match 括号中字符串后的第一个字符串
我四处寻找接近此的解决方案,但未能成功找到解决方案。我希望通过 php_codesniffer 清理一些遗留代码,但修复程序不会修复超过 80 列的注释或数组,只是让您了解它们。我有一个适用于评论的解决方案,但我被困在数组的正则表达式上。我想修复的示例行是:
我想要
但我得到了 1。请注意,那里还有另一个相当常见的数组。我只想捕获第一个数组的值,然后我可以从那里将它们分成不同的行。最后,我想分享我对 php codesniffer 项目的解决方案,以便展示如何为 squizlabs 编写新的修复程序。
codesniffer - PHP CodeSniffer:错误:指定的嗅探代码“Generic.Files.LineEndings.InvalidEOLChar”无效
我尝试在我的 Windows 机器上排除对 EOL 字符的检查总是会导致以下错误消息:
无法弄清楚我做错了什么。我已经通过 composer 安装了 PHP CodeSniffer,并且正在运行 3.4.0 版。