PHP Static analysis for herbie

Label Recipes Issues Files Severity Frequence
String Initialization All, CompatibilityPHP71 9 2 Minor 33 %
Too Many Array Dimensions All, Analyze 1 1 Minor 0 %
Ambiguous Visibilities All, Analyze 12 11 Minor 70 %
Avoid Optional Properties All, Analyze 14 7 Major 83 %
Child Class Removes Typehint All, CompatibilityPHP53, CompatibilityPHP70, CompatibilityPHP71, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56, Typechecks 2 2 Major 1 %
Could Be Abstract Class All, Analyze, ClassReview 2 2 Minor 65 %
Class Could Be Final All, Analyze, ClassReview 62 62 Minor 95 %
Method Could Be Static All, Analyze, ClassReview 115 36 Minor 95 %
Cyclic References All, Analyze, ClassReview 4 2 Minor 0 %
No Direct Call To Magic Method Analyze, All, Level 2 5 3 Major 41 %
Class Should Be Final By Ocramius All, Analyze 3 3 Minor 42 %
Hidden Nullable All, Analyze, ClassReview 31 8 Minor 0 %
Locally Unused Property Dead code, All, Simple 1 1 Minor 76 %
Method Signature Must Be Compatible All, Analyze, LintButWontExec 3 3 Critical 50 %
No Public Access Analyze, All 1 1 Minor 60 %
Non Nullable Getters All, Analyze, ClassReview 10 7 Minor 0 %
Non Static Methods Called In A Static Analyze, CompatibilityPHP56, All, Simple, CompatibilityPHP53, CompatibilityPHP54, CompatibilityPHP55 17 9 Minor 20 %
Property Could Be Local All, Analyze, ClassReview 54 22 Minor 71 %
Never Used Properties Analyze, All, Simple 1 1 Minor 72 %
Property Used In One Method Only All, Analyze 11 5 Minor 84 %
Redefined Default Analyze, All, Simple 35 18 Major 26 %
Should Use Local Class Analyze, ClearPHP, All, Simple 98 31 Minor 94 %
Too Many Injections All, Analyze, Dismell 4 4 Minor 0 %
Wrong Access Style to Property All, Analyze, Level 2, ClassReview 8 2 Critical 3 %
Undefined Classes Analyze, All 115 17 Major 91 %
Undefined Class Constants Analyze, All 6 2 Major 53 %
Undefined ::class All, Analyze 15 1 Major 34 %
Unresolved Classes Analyze, All 47 8 Major 86 %
Unused Methods Dead code, All, Simple 156 53 Minor 95 %
Unused Private Properties Dead code, OneFile, All, Simple 9 7 Minor 37 %
Unused Protected Methods Dead code, All 15 2 Major 72 %
Use Instanceof Analyze, All, Simple 1 1 Major 63 %
Used Once Property All, Analyze 13 8 Minor 72 %
Use const Analyze, Coding Conventions, All, Top10 6 1 Minor 57 %
Constants With Strange Names Analyze, All, Simple 3 1 Minor 1 %
Invalid Constant Name Analyze, All, Simple 3 1 Major 1 %
Multiple Constant Definition Analyze, All, Simple 2 1 Minor 32 %
Undefined Constants Analyze, All, Simple, CompatibilityPHP72 3 2 Minor 54 %
Unused Constants Dead code, All, Simple 1 1 Minor 36 %
Forgotten Thrown All, Analyze 12 2 Major 30 %
Uncaught Exceptions Analyze, All 33 18 Minor 81 %
Unthrown Exception Analyze, Dead code, ClearPHP, All, Simple 2 2 Minor 43 %
Use Named Boolean In Argument Definition All, Analyze 24 7 Minor 84 %
Could Make A Function All, Analyze, Suggestions 33 16 Minor 75 %
Dont Collect Void All, Analyze 2 1 Minor 0 %
Empty Function Analyze, All, Simple 1 1 Minor 71 %
Hardcoded Passwords Analyze, OneFile, Security, All, Simple, Level 3 2 2 Major 61 %
Insufficient Typehint All, Analyze, Typechecks 3 3 Major 24 %
Mismatched Default Arguments All, Analyze, Typechecks 43 15 Minor 33 %
Mismatched Typehint All, Analyze, Typechecks 53 15 Major 5 %
Must Return Methods Analyze, All, Simple, Level 2, LintButWontExec 18 5 Major 22 %
Never Used Parameter All, Analyze, Suggestions 81 25 Minor 47 %
No Boolean As Default All, Analyze 24 7 Minor 84 %
Relay Function Analyze, All 23 12 Major 83 %
Too Many Local Variables All, Analyze 1 1 Minor 65 %
Unused Arguments Analyze, All, Simple 25 11 Major 89 %
Uses Default Values Analyze, All, Simple 219 44 Minor 97 %
Methods Without Return All, Analyze 19 8 Minor 0 %
Wrong Number Of Arguments Analyze, OneFile, All, Simple 7 3 Major 38 %
Wrong Returned Type All, Analyze, ClassReview 50 23 Minor 0 %
Wrong Type With Call All, Analyze, Typechecks 14 5 Minor 0 %
Interfaces Is Not Implemented All, Analyze, ClassReview 8 8 Minor 0 %
Undefined Interfaces Analyze, All 27 7 Major 67 %
Multiple Alias Definitions Analyze, All, Simple 2 2 Minor 42 %
Unresolved Use Analyze, ClearPHP, All, Simple 69 22 Major 65 %
Unused Use Dead code, ClearPHP, All, Simple 13 4 Major 54 %
Use With Fully Qualified Name Analyze, Coding Conventions, PHP recommendations, All, Simple 2 1 Minor 16 %
Logical To in_array All, Analyze, Level 2 1 1 Minor 66 %
Pre-increment Analyze, Performances, All, Simple, Level 4 10 5 Minor 74 %
strpos() Too Much All, Analyze 5 5 Minor 46 %
array_key_exists() Works On Arrays All, CompatibilityPHP74, Analyze 3 2 Minor 0 %
Use random_int() Analyze, Security, All, CompatibilityPHP71, Simple, Level 2 1 1 Major 59 %
Use === null Analyze, OneFile, All, RadwellCodes, Simple, php-cs-fixable 19 8 Minor 52 %
Logical Should Use Symbolic Operators Analyze, OneFile, ClearPHP, All, Simple, Suggestions, Level 2, Top10, php-cs-fixable 1 1 Minor 42 %
No Class In Global All, Analyze 4 4 Minor 78 %
PHP 7.0 Scalar Typehints All, CompatibilityPHP53, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56 284 59 Critical 31 %
PHP 7.1 Scalar Typehints All, CompatibilityPHP53, CompatibilityPHP70, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56 1 1 Critical 0 %
PHP Keywords As Names Analyze, All, Simple 112 23 Major 89 %
Should Use Coalesce Analyze, All, Simple, Suggestions, Level 3 3 3 Major 71 %
Too Many Native Calls All, Analyze 1 1 Minor 47 %
Use Nullable Type All, Appinfo, CompatibilityPHP53, CompatibilityPHP70, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56 59 22 Major 21 %
Usort Sorting In PHP 7.0 CompatibilityPHP70, All 6 4 Major 46 %
Avoid Those Hash Functions Security, All 1 1 Major 60 %
Don't Echo Error All, Analyze, Security, Simple, Level 1 1 1 Critical 32 %
Altering Foreach Without Reference Analyze, ClearPHP, All, Simple, Level 1 2 1 Major 52 %
Constant Comparison All, Analyze 5 3 Minor 0 %
Strict Comparison With Booleans Analyze, All, Simple, Suggestions, Level 2 14 9 Minor 76 %
Buried Assignation Analyze, All 3 1 Minor 82 %
Cast To Boolean Analyze, OneFile, All, Simple, Level 1 1 1 Minor 55 %
Check All Types All, Analyze 8 5 Major 68 %
Check JSON All, Analyze 1 1 Major 64 %
Common Alternatives Analyze, All, Simple 5 5 Major 61 %
Could Use Short Assignation Analyze, OneFile, Performances, All, Simple 23 6 Minor 60 %
Could Use str_repeat() All, Analyze, Level 1, Top10 1 1 Minor 12 %
Dont Change The Blind Var All, Analyze 15 12 Minor 72 %
Dont Mix ++ All, Analyze 1 1 Minor 43 %
Drop Else After Return All, Analyze, OneFile, Simple, Suggestions, Level 4 4 3 Minor 70 %
Empty Instructions Dead code, Analyze, All, Simple 1 1 Minor 43 %
Exit() Usage Analyze, Appinfo, OneFile, ClearPHP, All 3 3 Major 60 %
Iffectations Analyze, All 4 1 Minor 80 %
Implied If Analyze, ClearPHP, All, Simple 1 1 Major 29 %
Inconsistent Elseif All, Analyze 1 1 Major 73 %
Infinite Recursion All, Analyze 3 2 Major 0 %
Merge If Then All, Analyze 6 4 Minor 0 %
Missing New ? All, Analyze 28 14 Critical 5 %
Modernize Empty With Expression All, Analyze, OneFile, Simple 6 6 Minor 56 %
Multiply By One Analyze, OneFile, ClearPHP, All, Simple, Level 1 1 1 Minor 17 %
Nested Ifthen Analyze, All, RadwellCodes 1 1 Major 87 %
No Need For Else All, Analyze 6 4 Minor 74 %
No Parenthesis For Language Construct Analyze, ClearPHP, All, RadwellCodes, Simple, Suggestions, Level 2 7 5 Minor 61 %
Avoid Substr() One Analyze, Performances, All, CompatibilityPHP71, Simple, Level 2, Suggestions, Top10 6 6 Minor 57 %
Variable Is Not A Condition All, Analyze 24 17 Minor 57 %
@ Operator Appinfo, ClearPHP, All, Analyze, Performances 1 1 Minor 66 %
include_once() Usage Analyze, Appinfo, All 1 1 Minor 73 %
Printf Number Of Arguments All, Analyze 2 1 Minor 42 %
Repeated Regex All, Analyze, Level 1 3 1 Minor 47 %
Should Make Ternary All, Analyze, OneFile, Simple 11 9 Minor 85 %
Preprocessable Analyze, All, Rector 233 36 Minor 86 %
Static Loop Analyze, All, Simple, Level 4 7 3 Minor 65 %
Strpos()-like Comparison Analyze, PHP recommendations, ClearPHP, All, Simple, Level 2, Top10 2 2 Major 54 %
Switch To Switch Analyze, All, RadwellCodes, Simple 1 1 Minor 79 %
Switch Without Default Analyze, ClearPHP, All, Simple 1 1 Major 68 %
Timestamp Difference Analyze, All, Simple, Level 3 2 2 Major 50 %
Unreachable Code Dead code, OneFile, ClearPHP, All, Simple, Suggestions, Level 3 1 1 Major 44 %
Use Positive Condition All, Analyze, OneFile, Simple 1 1 Minor 81 %
Useless Casting All, PHP recommendations, Analyze, OneFile, RadwellCodes, Simple, Level 4 1 1 Minor 37 %
Useless Parenthesis Analyze, All, Simple 12 9 Minor 81 %
Useless Switch Analyze, All, Simple 2 2 Major 30 %
Useless Unset Analyze, OneFile, ClearPHP, All, Simple, Level 2 2 1 Major 28 %
Dependant Trait Analyze, All, Level 3 1 1 Minor 26 %
Should Typecast Analyze, OneFile, All, Simple 11 6 Minor 47 %
String May Hold A Variable Analyze, All, Simple 1 1 Minor 58 %
Assigned Twice All, Analyze 17 6 Minor 78 %
Overwritten Literals Analyze, All 17 6 Major 78 %
Undefined Variable All, Analyze 5 2 Minor 77 %
Used Once Variables Analyze, OneFile, All, Simple, Top10 1 1 Minor 87 %
Used Once Variables (In Scope) Analyze, ClearPHP, OneFile, All, Simple, Level 4 51 19 Minor 95 %
Written Only Variables Analyze, OneFile, All, Simple 11 7 Minor 78 %