Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Magic number rules for phpstan/phpstan.

License

NotificationsYou must be signed in to change notification settings

sidz/phpstan-rules

Repository files navigation

Continuous Integration

Provides additional rules forphpstan/phpstan.

Installation

Run

composer require --dev sidz/phpstan-rules

If you usePHPStan extension installer, you're all set. If not, you need to manually register all the rules in yourphpstan.neon:

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

Each rule by default ignores the following numbers:0 and1. This can be configured by adding the following parameter to yourphpstan.neon:

parameters:sidzIgnoreMagicNumbers: [0,1,100]

Each rule by default detects numeric strings like'12' in source code. This behavior could be disabled via parameter:

parameters:sidzIgnoreNumericStrings:true

Ignoring particular rules

If you need to ignore particular rule, for exampleNoMagicNumberInComparisonOperatorRule, you can do so by using built-inignoreErrors parameter:

parameters:ignoreErrors:- '#^Do not use magic number in comparison operations\. Move to constant with a suitable name\.$#'

If you need to ignore this rule only for particular file or folder, this also can be done by usingignoreErrors parameter:

parameters:ignoreErrors:-message:'#^Do not use magic number in comparison operations\. Move to constant with a suitable name\.$#'path:src/SomeFolder/*

And finally, if you want to ignore all the rules from this package for particular files or folders, add this tophpstan.neon:

parameters:ignoreErrors:-message:'#Do not (use|return|assign) magic number (.)#'paths:- src/DataFixtures/*- tests/*

Rules

This package provides the following rules for use withphpstan/phpstan:

Classes

MagicNumber\NoMagicNumberAsFunctionArgumentRule

This rule reports an error when magic number is used as function argument:

<?phpsome_function(10);

MagicNumber\NoMagicNumberAssignedToPropertyRule

This rule reports an error when magic number is assigned to class property:

<?phpclass Test{private$prop1 =10;private$prop2 = -5.5;}

MagicNumber\NoMagicNumberInArithmeticOperatorRule

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;

MagicNumber\NoMagicNumberInBitwiseOperatorRule

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;

MagicNumber\NoMagicNumberInComparisonOperatorRule

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;

MagicNumber\NoMagicNumberInDefaultParameterRule

This rule reports an error when magic number is used as default parameter:

<?phpclass Test{publicfunctiontestMethod($param =3):string    {return'string';    }}

MagicNumber\NoMagicNumberInLogicalOperatorRule

This rule reports an error when magic number is used as part of logical operation:

<?php$aand1;1and$a;$bor2;2or$b;$cxor3;3xor$c;

MagicNumber\NoMagicNumberInMatchRule

This rule reports an error when magic number is used in arms or conditions:

<?phpmatch (3) {1 =>'Hi',2,4 =>'There',default =>thrownewLogicException(),};

MagicNumber\NoMagicNumberInReturnStatementRule

This rule reports an error when magic number is used inreturn statement:

<?phpclass Test{publicfunctiongetNegativeValue():float    {return -20.5;    }}

MagicNumber\NoMagicNumberInSwitchCaseRule

This rule reports an error when magic number is used in condition or cases:

<?phpswitch (100) {case5:break;}

MagicNumber\NoMagicNumberInTernaryOperatorRule

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;

MagicNumber\NoMagicNumberVariableAssignmentRule

This rule reports an error when magic number is assigned to some variable:

<?php$var1 =4;$var2 = -2;functiontest_func($var4 =3):void{$var5 =0;}$var6 =.1;$var7 =3.5;$var8 = -2.3;

License

This package is licensed using the MIT License.

Please have a look atLICENSE.md.

About

Magic number rules for phpstan/phpstan.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp