正如标题所说。我正在寻找一个类似于eslint的eqeqeq的规则,但PHP。我想强制使用===/!==而不是==/!=。
我也尝试过谷歌搜索和搜索他们的repo,但不幸的是没有用。我只想在这里问一下,在我在Github上打开一个问题之前,是否有人知道我错过了一条规则:)
发布于 2020-08-25 06:00:57
尝试包括Squiz.Operators.ComparisonOperatorUsage嗅探。它强制执行严格的类型比较,包括禁止使用!$foo而支持=== false。
它还禁止隐式的真比较,所以你不能做像if ($foo)这样的事情,但是你可以通过排除Squiz.Operators.ComparisonOperatorUsage.ImplicitTrue错误代码来禁用它,如果它对你的标准太严格了。
发布于 2021-07-12 23:24:45
Slevomat Coding Standard包含一个专门用于禁止松散比较运算符的规则。
安装
通过Composer全局或本地将编码标准安装到您的项目目录。
composer global require slevomat\coding-standard
composer require slevomat\coding-standard --dev
参考文献
phpcs通常通过phpcs.xml文件进行配置。使用config标记在此文件中添加对slevomat编码标准的引用。
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PHP_CodeSniffer" xsi:noNamespaceSchemaLocation="phpcs.xsd">
<config name="installed_paths" value="{path}"/>
...
</ruleset>如果是全局安装的,{ path }值可以是绝对路径;如果安装在项目中,{ path }值可以是相对路径。
C:\Users\{username}\AppData\Roaming\Composer\vendor\slevomat\coding-standard
vendor\slevomat\coding-standard
配置
这是一个已配置的phpcs.xml文件的示例。我已经告诉phpcs使用PSR2规则,也使用来自Slevomat编码标准的DisallowEqualOperators规则。
<ruleset ...>
<config name="installed_paths" value="vendor\slevomat\coding-standard"/>
<!-- Add your rules below this line -->
<!-- Use the PSR2 rules that are included with phpcs. -->
<rule ref="PSR2">
<!--
https://github.com/slevomat/coding-standard#slevomatcodingstandardoperatorsdisallowequaloperators-
Disallows using loose == and != comparison operators. Use === and !== instead, they are much more secure and predictable.
-->
<rule ref="SlevomatCodingStandard.Operators.DisallowEqualOperators"/>
</ruleset>https://stackoverflow.com/questions/63562628
复制相似问题