sidz/phpstan-rules

PHPStan 规则集

安装次数: 34,347

依赖: 2

建议者: 0

安全性: 0

星标: 26

关注者: 4

分支: 4

开放问题: 0

类型:phpstan-extension

0.4.5 2024-07-12 13:21 UTC

This package is auto-updated.

Last update: 2024-09-12 13:52:42 UTC


README

Continuous Integration

phpstan/phpstan 提供额外的规则。

安装

运行

composer require --dev sidz/phpstan-rules

如果您使用 PHPStan 扩展安装器,则已设置好。如果没有,则需要手动在您的 phpstan.neon 中注册所有规则

includes:
    - vendor/sidz/phpstan-rules/rules.neon

默认情况下,每个规则忽略以下数字: 01。这可以通过向您的 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 提供以下规则

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