Prinzip
Jeder normalisierte Faktor wird gewichtet. Die Gewichte spiegeln Hygiene-Relevanz, nicht Architektur-Bedeutung.
Standard-Gewichtung
| Faktor | Gewicht | Hygiene-Begründung |
|---|---|---|
| Dependencies | 25% | Kopplung = Hauptursache für Hygiene-Verfall |
| Lines of Code | 20% | Überschaubarkeit der Datei |
| Methoden-Anzahl | 20% | Verantwortlichkeits-Klarheit |
| Hardcoded Secrets | 15% | Sicherheits-Hygiene |
| Klassen pro Datei | 10% | Datei-Kohäsion |
| Magic Numbers | 10% | Lesbarkeit |
Score-Berechnung
hygiene_score = (
deps_normalized × 0.25 +
loc_normalized × 0.20 +
methods_normalized × 0.20 +
secrets_normalized × 0.15 +
classes_normalized × 0.10 +
magic_normalized × 0.10
)
Beispiel: ContentController.php
400 LOC, 16 Methoden, 1 Klasse, 6 Dependencies, 0 Secrets, 2 Magic Numbers
| Faktor | Roh | Normalisiert | × | Gewicht | = | Beitrag |
|---|---|---|---|---|---|---|
| Dependencies | 6 | 82 | × | 0.25 | = | 20.5 |
| LOC | 400 | 40 | × | 0.20 | = | 8.0 |
| Methoden | 16 | 27 | × | 0.20 | = | 5.4 |
| Secrets | 0 | 100 | × | 0.15 | = | 15.0 |
| Klassen | 1 | 100 | × | 0.10 | = | 10.0 |
| Magic | 2 | 80 | × | 0.10 | = | 8.0 |
| Hygiene Score | 66.9 | |||||
Interpretation: Score 67 = „Gepflegt" (60-79)
Dateityp-Modifikatoren
Pragmatische Gewichtsanpassung nach Dateityp:
Controller
| Faktor | Standard | Controller |
|---|---|---|
| Methoden | 20% | 10% |
| Dependencies | 25% | 30% |
Controller haben viele Actions. Dafür ist Kopplung kritischer.
Entity/Model
| Faktor | Standard | Entity |
|---|---|---|
| LOC | 20% | 30% |
| Dependencies | 25% | 15% |
Entities müssen schlank bleiben. Framework-Dependencies sind unvermeidbar.
Repository
| Faktor | Standard | Repository |
|---|---|---|
| Methoden | 20% | 10% |
| LOC | 20% | 30% |
Viele CRUD-Methoden sind normal. LOC-Hygiene wichtiger.
Zukünftige Erweiterung
Bei Integration von PHPStan:
| Faktor | Aktuell | Mit PHPStan |
|---|---|---|
| Dependencies | 25% | 20% |
| LOC | 20% | 15% |
| Methoden | 20% | 15% |
| Secrets | 15% | 12% |
| Klassen | 10% | 8% |
| Magic | 10% | 5% |
| PHPStan | - | 25% |
PHPStan wird hoch gewichtet - statische Analyse ist Kern-Hygiene.