2024-02-21 18:14:29 +01:00
< ? php
2025-01-15 02:00:58 +01:00
/* Copyright ( C ) 2024 - 2025 MDW < mdeweerd @ users . noreply . github . com >
2024-04-27 12:45:50 +02:00
* Copyright ( C ) 2024 Frédéric France < frederic . france @ free . fr >
2024-02-21 18:14:29 +01:00
*/
2024-02-26 23:10:16 +01:00
2024-03-26 00:57:32 +01:00
// Load default configuration (with many exclusions)
//
$config = include __DIR__ . DIRECTORY_SEPARATOR . " config.php " ;
2024-02-26 23:10:16 +01:00
2024-03-26 00:57:32 +01:00
$config [ 'plugins' ] = [
2024-02-25 22:11:25 +01:00
__DIR__ . '/plugins/NoVarDumpPlugin.php' ,
2024-02-26 23:10:16 +01:00
__DIR__ . '/plugins/ParamMatchRegexPlugin.php' ,
2024-02-21 18:14:29 +01:00
'DeprecateAliasPlugin' ,
//'EmptyMethodAndFunctionPlugin',
'InvalidVariableIssetPlugin' ,
//'MoreSpecificElementTypePlugin',
'NoAssertPlugin' ,
'NotFullyQualifiedUsagePlugin' ,
'PHPDocRedundantPlugin' ,
'PHPUnitNotDeadCodePlugin' ,
//'PossiblyStaticMethodPlugin',
'PreferNamespaceUsePlugin' ,
'PrintfCheckerPlugin' ,
'RedundantAssignmentPlugin' ,
'ConstantVariablePlugin' , // Warns about values that are actually constant
//'HasPHPDocPlugin', // Requires PHPDoc
2024-03-19 18:09:19 +01:00
// 'InlineHTMLPlugin', // html in PHP file, or at end of file
2024-02-21 18:14:29 +01:00
'NonBoolBranchPlugin' , // Requires test on bool, nont on ints
'NonBoolInLogicalArithPlugin' ,
'NumericalComparisonPlugin' ,
2024-02-25 22:11:25 +01:00
// 'PHPDocToRealTypesPlugin', // Report/Add types to function definitions
2024-02-21 18:14:29 +01:00
'PHPDocInWrongCommentPlugin' , // Missing /** (/* was used)
//'ShortArrayPlugin', // Checks that [] is used
//'StrictLiteralComparisonPlugin',
'UnknownClassElementAccessPlugin' ,
'UnknownElementTypePlugin' ,
'WhitespacePlugin' ,
//'RemoveDebugStatementPlugin', // Reports echo, print, ...
'SimplifyExpressionPlugin' ,
//'StrictComparisonPlugin', // Expects ===
'SuspiciousParamOrderPlugin' ,
'UnsafeCodePlugin' ,
//'UnusedSuppressionPlugin',
'AlwaysReturnPlugin' ,
//'DollarDollarPlugin',
'DuplicateArrayKeyPlugin' ,
'DuplicateExpressionPlugin' ,
'PregRegexCheckerPlugin' ,
'PrintfCheckerPlugin' ,
'SleepCheckerPlugin' ,
// Checks for syntactically unreachable statements in
// the global scope or function bodies.
'UnreachableCodePlugin' ,
'UseReturnValuePlugin' ,
'EmptyStatementListPlugin' ,
'LoopVariableReusePlugin' ,
2024-03-26 00:57:32 +01:00
];
2024-02-21 18:14:29 +01:00
2024-03-26 00:57:32 +01:00
// Add any issue types (such as 'PhanUndeclaredMethod')
// here to inhibit them from being reported
$config [ 'suppress_issue_types' ] = [
2024-04-05 10:22:01 +02:00
// Dolibarr uses a lot of internal deprecated stuff, not reporting
'PhanDeprecatedProperty' ,
2024-03-08 23:00:55 +01:00
'PhanCompatibleNegativeStringOffset' , // return false positive
2024-05-10 11:48:27 +02:00
'PhanPluginConstantVariableBool' , // a lot of false positive, in most cases, we want to keep the code as it is
2024-11-06 23:57:45 +01:00
// 'PhanPluginUnknownArrayPropertyType', // Helps find missing array keys or mismatches, remaining occurrences are likely unused properties
2024-11-12 00:35:14 +01:00
'PhanTypeArraySuspiciousNullable' , // About 400 cases
2024-09-29 21:52:31 +02:00
// 'PhanTypeInvalidDimOffset', // Helps identify missing array indexes in types or reference to unset indexes
2024-05-13 12:49:14 +02:00
'PhanTypeObjectUnsetDeclaredProperty' ,
2024-06-03 21:30:25 +02:00
'PhanTypePossiblyInvalidDimOffset' , // a lot of false positive, in most cases, we want to keep the code as it is
2024-06-21 17:27:52 +02:00
'PhanPluginUnknownArrayFunctionReturnType' , // a lot of false positive, in most cases, we want to keep the code as it is
2024-03-08 23:00:55 +01:00
2024-02-21 18:14:29 +01:00
'PhanPluginWhitespaceTab' , // Dolibarr used tabs
'PhanPluginCanUsePHP71Void' , // Dolibarr is maintaining 7.0 compatibility
'PhanPluginShortArray' , // Dolibarr uses array()
'PhanPluginShortArrayList' , // Dolibarr uses array()
2024-02-25 22:11:25 +01:00
// Fixers From PHPDocToRealTypesPlugin:
'PhanPluginCanUseParamType' , // Fixer - Report/Add types in the function definition (function abc(string $var) (adds string)
'PhanPluginCanUseReturnType' , // Fixer - Report/Add return types in the function definition (function abc(string $var) (adds string)
'PhanPluginCanUseNullableParamType' , // Fixer - Report/Add nullable parameter types in the function definition
'PhanPluginCanUseNullableReturnType' , // Fixer - Report/Add nullable return types in the function definition
2024-03-08 23:00:55 +01:00
2024-02-21 18:14:29 +01:00
'PhanPluginNonBoolBranch' , // Not essential - 31240+ occurrences
'PhanPluginNumericalComparison' , // Not essential - 19870+ occurrences
2025-02-01 15:19:42 +01:00
'PhanTypeMismatchArgument' , // Not showing in cti.dolibarr until low count - Can detect missing array keys, invalid types, objects being passed when scalar expected - Not all reported by phpstan - <=3800 cases (was: 12300+ before)
2024-02-21 18:14:29 +01:00
'PhanPluginNonBoolInLogicalArith' , // Not essential - 11040+ occurrences
'PhanPluginConstantVariableScalar' , // Not essential - 5180+ occurrences
2024-03-01 01:58:06 +01:00
'PhanPluginDuplicateAdjacentStatement' ,
2024-02-21 18:14:29 +01:00
'PhanPluginDuplicateConditionalTernaryDuplication' , // 2750+ occurrences
'PhanPluginDuplicateConditionalNullCoalescing' , // Not essential - 990+ occurrences
2024-02-29 16:41:00 +01:00
'PhanPluginRedundantAssignmentInGlobalScope' , // Not essential, a lot of false warning
2024-05-30 13:37:17 +02:00
'PhanPluginRedundantAssignment' , // Not essential, useless
2024-03-14 20:05:32 +01:00
'PhanPluginDuplicateCatchStatementBody' , // Requires PHP7.1 - 50+ occurrences
2024-08-03 14:02:09 +02:00
2025-01-15 02:00:58 +01:00
'PhanPluginUnknownArrayMethodParamType' , // All fixed, except in api_* at this time
'PhanPluginUnknownArrayMethodReturnType' , // All fixed, except in api_* at this time
2024-10-20 01:57:12 +02:00
'PhanTypeSuspiciousNonTraversableForeach' , // Reports on `foreach ($object as $key => $value)` which works without php notices, so we ignore it because this is intentional in the code.
2024-04-24 20:29:37 +02:00
];
2024-03-26 00:57:32 +01:00
return $config ;