Repository navigation
Expand file tree
/
Copy pathphpstan.neon
More file actions
129 lines (119 loc) · 5.09 KB
/
Copy pathphpstan.neon
File metadata and controls
129 lines (119 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
includes:
- phpstan.baseline.neon
parameters:
phpVersion: 80100 # PHP 8.1 (CI target)
level: 8
tmpDir: .github/tmp/phpstan
bootstrapFiles:
- dev/phpstan/bootstrap.php
paths:
- .
excludePaths:
analyseAndScan:
- vendor/
- css/
- js/
- documents/
- langs/
- dev/
# Le module embarque des scripts de migration ponctuels, ecrits pour une
# base precise et joues une fois : les analyser n'apprend rien.
- scripts/
analyse:
# Les fragments de template sont inclus au milieu de la portee de leur
# appelant : leurs variables sont indefinies par construction quand on les
# analyse isolement. Toujours scannes, pour que les classes qu'ils utilisent
# se resolvent.
- core/tpl/
# Fichiers isoles du coeur qui portent des fonctions utilisees par le module.
scanFiles:
# llxHeader()/llxFooter()/top_httphead() vivent dans main.inc.php
- ../../main.inc.php
# La classe TCPDF elle-meme : sans elle, chaque appel de methode sur un objet
# PDF remonte en class.notFound. Cela representait 293 des 1877 entrees de la
# baseline, et le moindre ajout dans un builder PDF faisait sauter les compteurs.
- ../../includes/tecnickcom/tcpdf/tcpdf.php
- ../../includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php
- ../../includes/tecnickcom/tcpdf/tcpdf_barcodes_2d.php
# Scanne, sans les analyser, le coeur Dolibarr et le socle Saturne dont ce module
# herite (SaturneObject, SaturneSignature, les libs saturne_*).
# A garder en phase avec le sparse-checkout de .github/workflows/quality.yml.
scanDirectories:
# Seulement les dossiers de saturne qui portent ce dont ce module a besoin, et non
# ../saturne/ en entier : le socle range aussi des bouchons de test qui declarent
# des classes du coeur - tests/phpunit/bootstrap.php pour DoliDB, Conf, Translate,
# User et HookManager, dev/phan/stubs.php pour DolibarrModules, Odf, Segment,
# Parsedown, EcmDirectory, Activity et TCPDF2DBarcode. Scannes, ils gagnent sur les
# vraies classes et chaque appel de methode remonte en « undefined method ».
# Restreindre le scan vaut mieux que de les exclure un a un : c'est immunise contre
# un futur bouchon depose ailleurs, et ca ne se fait pas balayer par un alignement
# de configuration. Issue #5294
- ../saturne/class/
- ../saturne/core/
- ../saturne/lib/
- ../../api/class/
- ../../categories/class/
- ../../comm/action/class/
- ../../comm/propal/class/
- ../../commande/class/
- ../../compta/facture/class/
- ../../contact/class/
- ../../contrat/class/
- ../../core/class/
- ../../core/db/
- ../../core/lib/
- ../../core/modules/
- ../../core/tpl/
- ../../core/triggers/
- ../../ecm/class/
- ../../expedition/class/
- ../../fichinter/class/
- ../../fourn/class/
- ../../includes/odtphp/
- ../../includes/parsedown/
# Export Excel de la synthese publique des risques (lib/digiriskdolibarr_riskoverview.lib.php)
- ../../includes/phpoffice/phpspreadsheet/src/PhpSpreadsheet/
- ../../includes/restler/framework/
- ../../mrp/class/
- ../../product/class/
- ../../product/inventory/class/
- ../../product/stock/class/
- ../../projet/class/
- ../../reception/class/
- ../../societe/class/
- ../../supplier_proposal/class/
- ../../ticket/class/
- ../../user/class/
# Performance
parallel:
processTimeout: 300.0
maximumNumberOfProcesses: 2
# Herite de la configuration de Dolibarr : reduit le bruit sur ses patterns dynamiques.
checkNullables: false
checkUnionTypes: false
polluteScopeWithLoopInitialAssignments: false
polluteScopeWithAlwaysIterableForeach: false
reportMaybes: false
reportMaybesInMethodSignatures: false
reportStaticMethodSignatures: false
reportMagicMethods: false
reportMagicProperties: false
treatPhpDocTypesAsCertain: false
reportUnmatchedIgnoredErrors: false
universalObjectCratesClasses:
- stdClass
- SimpleXMLElement
# Dolibarr affecte les proprietes d'un objet dynamiquement depuis la ligne SQL.
- CommonObject
ignoreErrors:
# Dolibarr ne documente jamais le type des valeurs d'un tableau (`@return array`),
# donc cette erreur tomberait sur chaque nouveau fichier sans jamais pouvoir etre
# resorbee.
- identifier: missingType.iterableValue
- '#.*phan-var#'
- '#^Expression "''…" on a separate line does not do anything#'
- '#Empty array passed to foreach#'
- '#Unable to resolve the template type T#'
- '#in empty\(\) always exists and is always falsy#'
- '#in empty\(\) always exists and is not falsy#'
- '#in isset\(\) is not nullable#'