Supprime les warnings SonarQube "Failed to resolve file path(s)" pour
les 15 fichiers Repository exclus de SonarQube mais encore analysés
par PHPStan.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Supprime les warnings SonarQube "Failed to resolve file path(s)" en
alignant les exclusions entre sonar.exclusions, phpunit.dist.xml et
phpstan.dist.neon pour les fichiers API live déjà ignorés.
- phpunit.dist.xml : ajout DnsReportController.php et CheckDnsCommand.php
dans source/exclude
- phpstan.dist.neon : ajout DnsReportController.php dans excludePaths
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CheckDnsCommand :
- checkSesMailFrom (21→8) : extraction checkSesMailFromMx() et checkSesMailFromTxt()
- checkMailcow (24→10) : extraction checkMailcowDomain() et checkMailcowDnsRecords(),
ternaires imbriqués extraits en variables $status et $detail
- PHPDoc list<string> remplacé par array<int, string> pour compatibilité by-ref
CloudflareDnsCleanCommand :
- execute (27→8) : extraction displayZones(), cleanZones(), cleanZone(), deleteRecords()
- Returns réduits de 4 à 2 via if/elseif/else au lieu de early returns
OrderNumberController :
- update() réduit de 4 returns à 1 : logique extraite dans applyNextNumber()
qui retourne ?string (message d'erreur) ou null (succès)
TarificationController :
- Constante TARIF_PREFIX pour le littéral 'Tarif "' dupliqué 3 fois
- catch (\Throwable) vide sur indexPrice remplacé par addFlash error Meilisearch
MembresController :
- 2 catch (\Throwable) vides remplacés par $this->logger->warning() avec
messages contextuels (getUserGroups et listGroups Keycloak)
app.scss :
- Contraste hover sidebar-nav-item : rgba(255,255,255,0.08) remplacé par
rgba(30,41,59,0.9) pour ratio WCAG AA explicite avec color: white
phpstan.dist.neon :
- Ajout excludePaths pour WebhookDocuSealController.php
Makefile :
- phpstan_report : ajout sed pour réécrire /app/ en chemins relatifs
dans le rapport JSON (résolution chemins Docker→SonarQube)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>