sidz / phpstan-rules
PHPStan 规则集
0.4.5
2024-07-12 13:21 UTC
Requires
- php: ^8.1, <8.4
- phpstan/phpstan: ^1.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- infection/infection: ^0.28.0
- nikic/php-parser: ^4.14 || ^5.0
- phpunit/phpunit: ^10.1
README
为 phpstan/phpstan
提供额外的规则。
安装
运行
composer require --dev sidz/phpstan-rules
如果您使用 PHPStan 扩展安装器,则已设置好。如果没有,则需要手动在您的 phpstan.neon
中注册所有规则
includes: - vendor/sidz/phpstan-rules/rules.neon
默认情况下,每个规则忽略以下数字: 0
和 1
。这可以通过向您的 phpstan.neon
中添加以下参数来配置
parameters: sidzIgnoreMagicNumbers: [0, 1, 100]
默认情况下,每个规则检测源代码中的数字字符串,例如 '12'
。此行为可以通过参数禁用
parameters: sidzIgnoreNumericStrings: true
忽略特定规则
如果您需要忽略特定规则,例如 NoMagicNumberInComparisonOperatorRule
,您可以使用内置的 ignoreErrors
参数来做到这一点
parameters: ignoreErrors: - '#^Do not use magic number in comparison operations\. Move to constant with a suitable name\.$#'
如果您只想为特定文件或文件夹忽略此规则,也可以通过使用 ignoreErrors
参数来实现
parameters: ignoreErrors: - message: '#^Do not use magic number in comparison operations\. Move to constant with a suitable name\.$#' path: src/SomeFolder/*
最后,如果您想为特定文件或文件夹忽略此包中的所有规则,请将以下内容添加到 phpstan.neon
parameters: ignoreErrors: - message: '#Do not (use|return|assign) magic number (.)#' paths: - src/DataFixtures/* - tests/*
规则
此包为使用 phpstan/phpstan
提供以下规则
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberAsFunctionArgumentRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberAssignedToPropertyRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInArithmeticOperatorRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInBitwiseOperatorRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInComparisonOperatorRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInDefaultParameterRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInLogicalOperatorRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInMatchRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInReturnStatementRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInSwitchCaseRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberInTernaryOperatorRule
Sid\PHPStan\Rules\MagicNumber\NoMagicNumberVariableAssignmentRule
类
MagicNumber\NoMagicNumberAsFunctionArgumentRule
此规则在将魔法数字用作函数参数时报告错误
<?php some_function(10);
MagicNumber\NoMagicNumberAssignedToPropertyRule
此规则在将魔法数字分配给类属性时报告错误
<?php class Test { private $prop1 = 10; private $prop2 = -5.5; }
MagicNumber\NoMagicNumberInArithmeticOperatorRule
此规则在使用各种算术运算符时报告错误
<?php $var1 + 2; $var2 - .3; $var3 * 2.2; $var4 / 2; $var5 % 1000; $var6 ** 2; 2 + $var1; 1.1 - $var2; 2 * $var3; -2 / $var4; 1000 % $var5;
MagicNumber\NoMagicNumberInBitwiseOperatorRule
此规则在使用各种位运算符时报告错误
<?php $a & 1; $b | 2; $c ^ 3; $a << 4; $b >> 5; 1 & $a; 2 | $b; 3 ^ $c; 4 << $a; 5 >> $b; 6 >> 7;
MagicNumber\NoMagicNumberInComparisonOperatorRule
此规则在比较运算符中使用时报告错误
<?php $var1 === 1; $var2 !== 2; $var3 !== 3; $var4 === 4.4; $var5 !== -5; $var6 < 6; $var7 <= 7; $var8 > .8; $var9 >= 9; $var10 <=> 0.1; $var11 === 11;
MagicNumber\NoMagicNumberInDefaultParameterRule
此规则在将魔法数字用作默认参数时报告错误
<?php class Test { public function testMethod($param = 3): string { return 'string'; } }
MagicNumber\NoMagicNumberInLogicalOperatorRule
此规则在逻辑操作中使用时报告错误
<?php $a and 1; 1 and $a; $b or 2; 2 or $b; $c xor 3; 3 xor $c;
MagicNumber\NoMagicNumberInMatchRule
此规则在条件或条件中使用时报告错误
<?php match (3) { 1 => 'Hi', 2, 4 => 'There', default => throw new LogicException(), };
MagicNumber\NoMagicNumberInReturnStatementRule
此规则在 return
语句中使用时报告错误
<?php class Test { public function getNegativeValue(): float { return -20.5; } }
MagicNumber\NoMagicNumberInSwitchCaseRule
此规则在条件或情况中使用时报告错误
<?php switch (100) { case 5: break; }
MagicNumber\NoMagicNumberInTernaryOperatorRule
此规则在三元运算符中使用时报告错误
<?php $a = $b ? 2 : 'string'; $c = $b ?: -3.5; $d = $b ? 'string' : 6;
MagicNumber\NoMagicNumberVariableAssignmentRule
此规则在将魔法数字分配给某个变量时报告错误
<?php $var1 = 4; $var2 = -2; function test_func($var4 = 3): void { $var5 = 0; } $var6 = .1; $var7 = 3.5; $var8 = -2.3;
许可
此软件包使用 MIT 许可证进行许可。
请查看LICENSE.md
。