PHPStan

Einrichtung und Konfiguration der statischen Analyse

Benötigt wird: PHPstan

Die statische Analyse ist über phpstan.neon konfiguriert (Level 6, Baseline in phpstan-baseline.neon).

Ausführen

composer analyse

Die Analyse benötigt eine webtrees-Installation (für die app/-Klassen + vendor/autoload.php). Ausführen vom bind-mounted-Pfad:

cd /path/to/webtrees/modules_v4/linkenhancer
composer analyse

Konfiguration

  • Level: 6
  • Baseline: phpstan-baseline.neon (bekannte Probleme)
  • Bootstrap: phpstan-bootstrap.php registriert die PSR-4-Namespaces direkt (umgeht den versionsgeprüften Autoloader in wt-shared-libs)
  • Scan-Verzeichnisse: ../../app/ (webtrees-Core-Klassen)
  • Ausgeschlossene Pfade: LinkEnhancerModuleExt.php (Verwendung im Zusammenhang mit Vesta-Modulen)
  • Speichergrenze: 1G
  • Parallel: deaktiviert (Single-Prozess, zuverlässiger in CI)

Wichtige Einstellungen

  • treatPhpDocTypesAsCertain: false — verhindert False Positives aus @var-Assertions
  • ignoreErrors für:
    • AccessLevel Enum (nur-Klasse in WT 2.3, in der 2.2-Laufzeit nicht verfügbar)
    • DB::prefix('') — beabsichtigt (Präfix ohne Identifier holen)

Baseline neu generieren

Nach beabsichtigten Änderungen, die neue (akzeptable) Fehler einführen:

vendor/bin/phpstan analyse -c phpstan.neon --memory-limit=1G --generate-baseline=phpstan-baseline.neon

Hinweis: Dies über den direkten vendor/bin/phpstan-Aufruf ausführen — der composer-Script-Wrapper leitet zusätzliche Argumente nicht weiter.

Zuletzt geändert 05.11.2026: added cross-links (9b8168b)