Provides additional rules for phpstan/phpstan
.
Run
composer require --dev sidz/phpstan-rules
Currently you need to manually register all rules in your phpstan.neon
. None of the rules has configurations yet.
rules:
- 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
This package provides the following rules for use with 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
This rule reports an error when magic number is used as function argument:
<?php
some_function(10);
This rule reports an error when magic number is assigned to class property:
<?php
class Test
{
private $prop1 = 10;
private $prop2 = -5.5;
}
This rule reports an error when magic number is used in various arithmetic operators:
<?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;
This rule reports an error when magic number is used in various bitwise operators:
<?php
$a & 1;
$b | 2;
$c ^ 3;
$a << 4;
$b >> 5;
1 & $a;
2 | $b;
3 ^ $c;
4 << $a;
5 >> $b;
6 >> 7;
This rule reports an error when magic number is used in comparison operator:
<?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;
This rule reports an error when magic number is used as default parameter:
<?php
class Test
{
public function testMethod($param = 3): string
{
return 'string';
}
}
This rule reports an error when magic number is used as part of logical operation:
<?php
$a and 1;
1 and $a;
$b or 2;
2 or $b;
$c xor 3;
3 xor $c;
This rule reports an error when magic number is used in arms or conditions:
<?php
match (3) {
1 => 'Hi',
2, 4 => 'There',
default => throw new LogicException(),
};
This rule reports an error when magic number is used in return
statement:
<?php
class Test
{
public function getNegativeValue(): float
{
return -20.5;
}
}
This rule reports an error when magic number is used in condition or cases:
<?php
switch (100) {
case 5:
break;
}
This rule reports an error when magic number is used in ternary operator:
<?php
$a = $b ? 2 : 'string';
$c = $b ?: -3.5;
$d = $b ? 'string' : 6;
This rule reports an error when magic number is assigned to some variable:
<?php
$var1 = 4;
$var2 = -2;
function test_func($var4 = 3): void
{
$var5 = 0;
}
$var6 = .1;
$var7 = 3.5;
$var8 = -2.3;
This package is licensed using the MIT License.
Please have a look at LICENSE.md
.