PHP Static analysis for kanboard

Label Recipes Issues Files Severity Frequence
Multiple Index Definition Analyze, OneFile, All, Simple 1 1 Minor 25 %
Null Or Boolean Arrays All, Analyze 11 4 Minor 0 %
Randomly Sorted Arrays All, Analyze, Level 4, Suggestions 9 8 Minor 41 %
String Initialization All, CompatibilityPHP71 12 6 Minor 33 %
Too Many Array Dimensions All, Analyze 9 2 Minor 0 %
Ambiguous Static All, Analyze 186 179 Minor 64 %
Ambiguous Visibilities All, Analyze 121 97 Minor 70 %
Avoid Optional Properties All, Analyze 28 20 Major 83 %
Child Class Removes Typehint All, CompatibilityPHP53, CompatibilityPHP70, CompatibilityPHP71, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56, Typechecks 1 1 Major 1 %
Clone With Non-Object All, Analyze, LintButWontExec 4 4 Minor 0 %
Constant Class Analyze, All, Simple 1 1 Minor 49 %
Could Be Abstract Class All, Analyze, ClassReview 10 10 Minor 65 %
Class Could Be Final All, Analyze, ClassReview 695 687 Minor 95 %
Method Could Be Static All, Analyze, ClassReview 379 204 Minor 95 %
Cyclic References All, Analyze, ClassReview 1 1 Minor 0 %
Dependant Abstract Classes All, Analyze, ClassReview 10 10 Minor 0 %
Different Argument Counts All, Analyze, ClassReview 1 1 Minor 0 %
Don't Send $this In Constructor All, Analyze 1 1 Minor 39 %
Don't Unset Properties All, Analyze, Top10, php-cs-fixable 1 1 Major 40 %
Empty Classes Analyze, All, Simple 8 8 Minor 58 %
Class Should Be Final By Ocramius All, Analyze 5 4 Minor 42 %
Hidden Nullable All, Analyze, ClassReview 8 4 Minor 0 %
Incompatible Signature Methods With Covariance All, Analyze 2 2 Critical 0 %
Instantiating Abstract Class Analyze, All, Simple 3 3 Major 9 %
Locally Unused Property Dead code, All, Simple 6 6 Minor 76 %
Assign Default To Properties Analyze, ClearPHP, All, Simple, Level 2 8 4 Minor 49 %
Make Global A Property Analyze, All, Simple 5 1 Minor 33 %
Method Signature Must Be Compatible All, Analyze, LintButWontExec 2 2 Critical 50 %
Mismatch Properties Typehints All, Analyze, LintButWontExec, ClassReview 26 17 Minor 0 %
No Public Access Analyze, All 30 9 Minor 60 %
Non Nullable Getters All, Analyze, ClassReview 83 55 Minor 0 %
Non Static Methods Called In A Static Analyze, CompatibilityPHP56, All, Simple, CompatibilityPHP53, CompatibilityPHP54, CompatibilityPHP55 1 1 Minor 20 %
Property Could Be Local All, Analyze, ClassReview 38 24 Minor 71 %
Never Used Properties Analyze, All, Simple 2 2 Minor 72 %
Property Used In One Method Only All, Analyze 24 14 Minor 84 %
Redefined Default Analyze, All, Simple 3 2 Major 26 %
Could Use self Analyze, All, Simple, Suggestions, Level 3, ClassReview 21 8 Minor 57 %
Should Use Local Class Analyze, ClearPHP, All, Simple 354 180 Minor 94 %
Static Methods Called From Object Analyze, All, Simple 75 30 Minor 38 %
$this Belongs To Classes Or Traits Analyze, All, Simple 2418 330 Major 23 %
Too Many Dereferencing All, Analyze 44 29 Minor 0 %
Wrong Access Style to Property All, Analyze, Level 2, ClassReview 1225 106 Critical 3 %
Undefined Classes Analyze, All 152 72 Major 91 %
Undefined Class Constants Analyze, All 21 10 Major 53 %
Undefined Properties Analyze, ClearPHP, All, Simple 3782 390 Major 58 %
Undefined static:: Or self:: Analyze, All, Simple 1 1 Minor 33 %
Unresolved Catch Dead code, ClearPHP, All 9 9 Major 51 %
Unresolved Classes Analyze, All 15 12 Major 86 %
Unused Classes Dead code, All, Simple, Analyze 9 9 Major 72 %
Unused Class Constant All, Analyze, ClassReview 3 2 Minor 0 %
Unused Methods Dead code, All, Simple 2259 571 Minor 95 %
Unused Protected Methods Dead code, All 45 30 Major 72 %
Use Class Operator All, Analyze, Performances, Simple 544 35 Minor 74 %
Used Once Property All, Analyze 17 14 Minor 72 %
Useless Abstract Class Analyze, All, Simple 3 3 Minor 60 %
Weak Typing All, Analyze 3 3 Minor 41 %
Use const Analyze, Coding Conventions, All, Top10 111 5 Minor 57 %
Constants With Strange Names Analyze, All, Simple 81 6 Minor 1 %
Invalid Constant Name Analyze, All, Simple 78 3 Major 1 %
Multiple Constant Definition Analyze, All, Simple 89 7 Minor 32 %
Undefined Constants Analyze, All, Simple, CompatibilityPHP72 35 9 Minor 54 %
Unused Constants Dead code, All, Simple 9 1 Minor 36 %
Catch Undefined Variable All, Analyze 4 2 Minor 0 %
Undefined Caught Exceptions Dead code, All 11 10 None 50 %
Forgotten Thrown All, Analyze 9 2 Major 30 %
Uncaught Exceptions Analyze, All 77 39 Minor 81 %
Unthrown Exception Analyze, Dead code, ClearPHP, All, Simple 10 10 Minor 43 %
Useless Catch All, Analyze 10 4 Minor 47 %
Missing Include All, Analyze 33 33 Critical 61 %
Aliases Usage Analyze, ClearPHP, OneFile, All, Simple, Level 1 24 6 Minor 42 %
Use Named Boolean In Argument Definition All, Analyze 69 42 Minor 84 %
Callback Needs Return All, Analyze 1 1 Major 51 %
Could Make A Function All, Analyze, Suggestions 644 269 Minor 75 %
Empty Function Analyze, All, Simple 14 10 Minor 71 %
Hardcoded Passwords Analyze, OneFile, Security, All, Simple, Level 3 49 29 Major 61 %
Insufficient Typehint All, Analyze, Typechecks 1 1 Major 24 %
Mismatched Default Arguments All, Analyze, Typechecks 67 27 Minor 33 %
Mismatched Typehint All, Analyze, Typechecks 28 15 Major 5 %
Never Used Parameter All, Analyze, Suggestions 153 97 Minor 47 %
No Boolean As Default All, Analyze 69 42 Minor 84 %
No Return Used All, Analyze, Suggestions, Level 4 51 28 Minor 41 %
Relay Function Analyze, All 92 48 Major 83 %
Should Use Constants Analyze, All, Simple 4 3 Minor 24 %
Unused Arguments Analyze, All, Simple 42 34 Major 89 %
Unused Functions Dead code, All, Simple 365 6 Minor 53 %
Useless Referenced Argument All, Analyze 29 23 Minor 57 %
Useless Return Analyze, OneFile, All, Simple, Level 4 3 3 Minor 29 %
Useless Type Check All, Dead code, OneFile 1 1 Minor 0 %
Uses Default Values Analyze, All, Simple 784 219 Minor 97 %
Methods Without Return All, Analyze 1383 312 Minor 0 %
Wrong Argument Type All, Analyze, Typechecks 2618 506 Minor 0 %
Wrong Number Of Arguments Analyze, OneFile, All, Simple 26 21 Major 38 %
Already Parents Interface Analyze, All, Level 3, Suggestions 1 1 Minor 17 %
Forgotten Interface All, Analyze 25 25 Minor 52 %
Interfaces Is Not Implemented All, Analyze, ClassReview, LintButWontExec 76 76 Minor 0 %
Undefined Interfaces Analyze, All 94 61 Major 67 %
Unused Interfaces Dead code, All, Simple, Suggestions, Level 2 1 1 Minor 25 %
Useless Interfaces Analyze, ClearPHP, All, Simple, ClassReview, Typechecks 10 10 Minor 57 %
Multiple Alias Definitions Analyze, All, Simple 52 51 Minor 42 %
Should Make Alias Analyze, OneFile, All, Simple 212 28 Minor 44 %
Unresolved Use Analyze, ClearPHP, All, Simple 53 46 Major 65 %
Unused Use Dead code, ClearPHP, All, Simple 45 37 Major 54 %
No array_merge() In Loops Analyze, Performances, ClearPHP, All, Simple, Level 2, Top10 10 8 Major 55 %
Logical To in_array All, Analyze, Level 2 28 11 Minor 66 %
Memoize MagicCall All, Analyze, ClassReview 398 200 Minor 0 %
Pre-increment Analyze, Performances, All, Simple, Level 4 122 38 Minor 74 %
strpos() Too Much All, Analyze 13 10 Minor 46 %
array_key_exists() Works On Arrays All, CompatibilityPHP74, Analyze 8 6 Minor 0 %
Use random_int() Analyze, Security, All, CompatibilityPHP71, Simple, Level 2 2 2 Major 59 %
Detect Current Class All, Suggestions, CompatibilityPHP74 3 3 None 47 %
Wrong Parameter Type Analyze, OneFile, All, Simple 46 14 Major 45 %
Use === null Analyze, OneFile, All, RadwellCodes, Simple, php-cs-fixable 18 14 Minor 52 %
List With Keys CompatibilityPHP53, CompatibilityPHP70, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56, Appcontent, Appinfo, All 15 15 Major 32 %
Logical Should Use Symbolic Operators Analyze, OneFile, ClearPHP, All, Simple, Suggestions, Level 2, Top10, php-cs-fixable 103 2 Minor 42 %
No Class In Global All, Analyze 57 31 Minor 78 %
No Substr Minus One All, CompatibilityPHP53, CompatibilityPHP70, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56 2 2 Major 12 %
PHP 7.1 Removed Directives CompatibilityPHP71, All 3 1 Major 1 %
PHP Keywords As Names Analyze, All, Simple 149 46 Major 89 %
Should Use Coalesce Analyze, All, Simple, Suggestions, Level 3 79 49 Major 71 %
Too Many Native Calls All, Analyze 11 1 Minor 47 %
Use Nullable Type All, Appinfo, CompatibilityPHP53, CompatibilityPHP70, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56 41 30 Major 21 %
Wrong Type For Native PHP Function All, Analyze 939 228 Minor 0 %
Always Anchor Regex All, Security 10 7 Major 65 %
Avoid Those Hash Functions Security, All 43 9 Major 60 %
Configure Extract All, Security 1 1 Minor 22 %
Safe Curl Options Security, All 1 1 Major 14 %
Direct Injection Security, All 1 1 Major 41 %
Don't Echo Error All, Analyze, Security, Simple, Level 1 1 1 Critical 32 %
Encoded Simple Letters All, Security 1 1 Minor 40 %
Mkdir Default All, Security 2 2 Major 35 %
Session Lazy Write All, Security 1 1 Major 4 %
Should Use Prepared Statement Analyze, Security, All, Simple 3 3 Major 22 %
Should Use session_regenerateid() All, Security 1 1 Major 82 %
Unserialize Second Arg Security, All 2 2 Critical 49 %
Adding Zero Analyze, OneFile, ClearPHP, All, Simple, Level 1 68 13 Minor 33 %
Altering Foreach Without Reference Analyze, ClearPHP, All, Simple, Level 1 2 2 Major 52 %
Alternative Syntax Consistence All, Analyze 1 1 Major 20 %
Array_merge Needs Array Of Arrays All, Analyze 46 26 Minor 0 %
Bail Out Early All, Analyze, OneFile, Simple, Level 4 22 14 Minor 92 %
Strict Comparison With Booleans Analyze, All, Simple, Suggestions, Level 2 24 21 Minor 76 %
Buried Assignation Analyze, All 7 6 Minor 82 %
Cast To Boolean Analyze, OneFile, All, Simple, Level 1 14 12 Minor 55 %
Casting Ternary All, Analyze, OneFile 2 2 Major 0 %
Check All Types All, Analyze 5 5 Major 68 %
Check JSON All, Analyze 60 18 Major 64 %
Common Alternatives Analyze, All, Simple 276 106 Major 61 %
Concat Empty String All, Analyze, OneFile 4 3 Minor 0 %
Could Use __DIR__ Analyze, All, Simple, Suggestions, Level 3, php-cs-fixable 5 2 Major 56 %
Could Use Short Assignation Analyze, OneFile, Performances, All, Simple 16 9 Minor 60 %
Dangling Array References PHP recommendations, Analyze, ClearPHP, All, Simple, Level 1, Top10 25 22 Major 40 %
__DIR__ Then Slash All, Analyze, Level 3 1 1 Major 13 %
Dont Change The Blind Var All, Analyze 14 12 Minor 72 %
Dont Mix ++ All, Analyze 4 4 Minor 43 %
Double Assignation Analyze, All 3 2 Major 55 %
Double Instructions Analyze, All, Simple 2 2 Minor 57 %
Drop Else After Return All, Analyze, OneFile, Simple, Suggestions, Level 4 40 29 Minor 70 %
Echo With Concat Performances, Analyze, All, Simple, Suggestions 60 26 Minor 58 %
Else If Versus Elseif Analyze, All, Simple, php-cs-fixable, Rector 34 26 Minor 65 %
Empty Blocks Analyze, All, Simple 1 1 Minor 57 %
Empty Instructions Dead code, Analyze, All, Simple 1272 170 Minor 43 %
Exit() Usage Analyze, Appinfo, OneFile, ClearPHP, All 4 3 Major 60 %
Switch Fallthrough All, Inventory, Security, Stats 1 1 Minor 37 %
Foreach Reference Is Not Modified Analyze, All, Simple 3 1 Minor 24 %
Forgotten Whitespace Analyze, All 6 6 Minor 15 %
Global Usage Analyze, Appinfo, ClearPHP, All 5 1 Minor 52 %
Htmlentities Calls Analyze, All, Simple 4 2 Major 39 %
Identical Conditions Analyze, All, Simple 1 1 Critical 28 %
Identical Consecutive Expression All, Analyze 29 14 Minor 58 %
Iffectations Analyze, All 2 1 Minor 80 %
Implied If Analyze, ClearPHP, All, Simple 103 2 Major 29 %
Implode() Arguments Order All, Analyze 4 2 Minor 0 %
Inconsistent Elseif All, Analyze 8 8 Major 73 %
Infinite Recursion All, Analyze 1 1 Major 0 %
Is Actually Zero All, Analyze, Level 2 3 2 Minor 32 %
Logical Mistakes Analyze, All, Simple, Level 1 1 1 Critical 31 %
Long Arguments All, Analyze 176 19 Minor 67 %
Max Level Of Nesting All, Analyze 4 3 Minor 0 %
Merge If Then All, Analyze 41 27 Minor 0 %
Mismatched Ternary Alternatives All, Analyze, Suggestions, Level 4 26 6 Major 62 %
Missing Cases In Switch All, Analyze 2 2 Minor 2 %
Missing New ? All, Analyze 83 68 Critical 5 %
Modernize Empty With Expression All, Analyze, OneFile, Simple 70 48 Minor 56 %
Multiple Type Variable All, Analyze, Level 4 1 1 Minor 43 %
Multiply By One Analyze, OneFile, ClearPHP, All, Simple, Level 1 9 4 Minor 17 %
Nested Ifthen Analyze, All, RadwellCodes 39 29 Major 87 %
Nested Ternary Analyze, ClearPHP, All, Simple, Level 1 6 5 Major 20 %
Next Month Trap All, Analyze, Top10 4 1 Major 7 %
No Choice Analyze, All, Simple, Level 2, Top10 1 1 Major 43 %
No Direct Usage Analyze, All, Simple 1 1 Major 36 %
No Hardcoded Hash Analyze, Security, All, Simple 1 1 Critical 44 %
No Hardcoded Ip Analyze, ClearPHP, Security, All, Simple 4 2 Minor 24 %
No Hardcoded Path Analyze, ClearPHP, All, Simple 4 3 Major 33 %
No isset() With empty() All, PHP recommendations, Analyze, OneFile, RadwellCodes, Simple, Level 4 3 2 Minor 28 %
No Need For Else All, Analyze 48 31 Minor 74 %
No Parenthesis For Language Construct Analyze, ClearPHP, All, RadwellCodes, Simple, Suggestions, Level 2 8 6 Minor 61 %
Avoid Substr() One Analyze, Performances, All, CompatibilityPHP71, Simple, Level 2, Suggestions, Top10 5 4 Minor 57 %
Variable Is Not A Condition All, Analyze 235 138 Minor 57 %
@ Operator Appinfo, ClearPHP, All, Analyze, Performances 17 8 Minor 66 %
Objects Don't Need References Analyze, ClearPHP, OneFile, All, Simple, Level 2, Top10 1 1 Minor 31 %
include_once() Usage Analyze, Appinfo, All 62 38 Minor 73 %
Several Instructions On The Same Line Analyze, All 142 75 Major 57 %
Print And Die Analyze, All, Simple 1 1 Minor 29 %
Printf Number Of Arguments All, Analyze 2 2 Minor 42 %
Random Without Try Security, All 1 1 Critical 21 %
Repeated print() Analyze, All, Simple, Suggestions, Level 3, Top10 19 9 Major 49 %
Repeated Regex All, Analyze, Level 1 2 2 Minor 47 %
Results May Be Missing Analyze, All, Simple 1 1 Major 18 %
Return True False Analyze, All, Simple, Level 1 2 1 Major 53 %
Should Chain Exception Analyze, All, Simple 3 2 Minor 36 %
Should Make Ternary All, Analyze, OneFile, Simple 40 33 Minor 85 %
Preprocessable Analyze, All, Rector 729 143 Minor 86 %
Static Loop Analyze, All, Simple, Level 4 14 7 Minor 65 %
Suspicious Comparison All, Analyze, Level 3 18 15 Major 15 %
Switch To Switch Analyze, All, RadwellCodes, Simple 4 3 Minor 79 %
Switch Without Default Analyze, ClearPHP, All, Simple 13 11 Major 68 %
Ternary In Concat Analyze, All, Simple, Level 3 1 1 Critical 3 %
Test Then Cast All, Analyze 3 3 Major 32 %
Timestamp Difference Analyze, All, Simple, Level 3 15 14 Major 50 %
Unchecked Resources Analyze, ClearPHP, All, Simple, Level 2 2 1 Major 49 %
Unconditional Break In Loop All, Analyze, Level 3 3 3 Major 46 %
Unpreprocessed Values Analyze, OneFile, ClearPHP, All, Simple 4 3 Minor 28 %
Unreachable Code Dead code, OneFile, ClearPHP, All, Simple, Suggestions, Level 3 14 5 Major 44 %
Use Constant PHP recommendations, All, Analyze, php-cs-fixable 5 2 Minor 0 %
Use Positive Condition All, Analyze, OneFile, Simple 86 79 Minor 81 %
Use System Tmp Analyze, All, Simple, Level 3 1 1 Major 1 %
Useless Casting All, PHP recommendations, Analyze, OneFile, RadwellCodes, Simple, Level 4 4 3 Minor 37 %
Useless Instructions Analyze, OneFile, ClearPHP, All, Simple, Level 1 6 6 None 58 %
Useless Parenthesis Analyze, All, Simple 51 23 Minor 81 %
Useless Unset Analyze, OneFile, ClearPHP, All, Simple, Level 2 1 1 Major 28 %
var_dump()... Usage Analyze, ClearPHP, Security, All 2 1 Critical 40 %
Should Typecast Analyze, OneFile, All, Simple 20 6 Minor 47 %
String May Hold A Variable Analyze, All, Simple 4 2 Minor 58 %
Strings With Strange Space All, Analyze 269 9 Minor 15 %
Assigned Twice All, Analyze 50 14 Minor 78 %
Overwritten Literals Analyze, All 60 14 Major 78 %
Strange Name For Variables All, Analyze 7 1 Minor 28 %
Undefined Variable All, Analyze 2987 329 Minor 77 %
Used Once Variables Analyze, OneFile, All, Simple, Top10 34 25 Minor 87 %
Used Once Variables (In Scope) Analyze, ClearPHP, OneFile, All, Simple, Level 4 532 260 Minor 95 %
Written Only Variables Analyze, OneFile, All, Simple 70 28 Minor 78 %