Skip to content

#80 [CI] feat: PHPStan, lint PHP et parité des langues - #81

Merged
nicolas-eoxia merged 1 commit into
developfrom
ci/qualite-doliwpshop
Sep 29, 2026
Merged

nicolas-eoxia merged 1 commit into
developfrom
ci/qualite-doliwpshop

Conversation

@nicolas-eoxia

Copy link
Copy Markdown
Member

Closes #80

Même outillage que les dix autres modules du parc : php -l sur tout l'arbre, parité fr_FR / en_US, et PHPStan niveau 8 avec baseline sur les pull requests.

Ce que le gabarit ne couvrait pas, dérivé des require_once du module :

Ce qui manquait Pourquoi
adherents, compta/bank, compta/paiement, stripe, variants le module touche aux adhérents, aux paiements, aux comptes bancaires et aux variantes de produit
includes/stripe/stripe-php/lib la bibliothèque Stripe, pas la classe Dolibarr du même nom : le trigger appelle \Stripe\Stripe::setApiKey() au paiement

scanDirectories et le sparse-checkout du workflow sont tenus en phase.

La parité a trouvé trois clés mortes en en_US — ReadRight, CreateRight, DeleteRight, restes du gabarit modulebuilder (« Consult myobject of WPshop »). Le code utilise les variantes suffixées du nom du module, qui existent bien des deux côtés. Ces trois-là sont des clés génériques : leur présence en en_US sans équivalent fr_FR faisait basculer en anglais tous les libellés de la requête, dans tous les modules, pas seulement ici.

Le trigger redéclare $version avec son type. Sans cela, PHPStan la refuse — le PHPDoc du cœur la type comme une énumération — et la baseline fige le numéro, ce qui casse la CI à chaque release. Le cas s'est produit deux fois sur d'autres modules la semaine dernière.

Vérifié en local sur un banc monté avec le cœur Dolibarr et Saturne à jour :

PHPStan     : No errors
php -l      : vert sur tout l'arbre
lang-parity : Every en_US key has a fr_FR counterpart.

Baseline initiale : 152 entrées.

🤖 Generated with Claude Code

Meme outillage que les dix autres modules du parc : php -l sur tout l'arbre,
parite fr_FR / en_US, et PHPStan niveau 8 avec baseline sur les pull requests.

Cinq dossiers du coeur manquaient au gabarit et ont ete ajoutes au
scanDirectories et au sparse-checkout ensemble : adherents, compta/bank,
compta/paiement, stripe et variants. La bibliotheque Stripe elle-meme est
scannee aussi : le trigger appelle \Stripe\Stripe::setApiKey() au paiement.

La parite a trouve trois cles mortes en en_US, restes du gabarit modulebuilder
(« Consult myobject of WPshop ») : le code utilise les variantes suffixees du
nom du module. ReadRight, CreateRight et DeleteRight sont des cles generiques,
donc leur presence en en_US sans equivalent fr_FR faisait basculer en anglais
tous les libelles de la requete, dans tous les modules.

Le trigger redeclare $version avec son type, sans quoi la baseline figerait le
numero et la prochaine release casserait la CI.

Baseline initiale : 152 entrees.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@nicolas-eoxia
nicolas-eoxia merged commit 6212676 into develop Sep 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI] Porter la chaîne qualité : PHPStan, lint PHP et parité des langues

1 participant