Methoden sollten nur einen Typ zurückgeben
Ich habe mit PHPStan eine statische Analyse des Codes durchgeführt.
Dabei ist mir aufgefallen, dass viele Methoden zwei oder sogar noch mehr Typen zurückgeben.
Beispielsweise kann Config->getValue()
einen Wert vom Typ array
, bool
oder string
zurückgeben.
Um mit einer solchen Vielzahl an möglichen Werten sicher weiterarbeiten zu können, muss man eine Menge Checks durchführen.
So viele Rückgabewerte deuten auch darauf hin, dass das Single Responsibility Principle (SRP) verletzt wird.
Mögliche Refactorings:
- Im Fehlerfall eine Exception werfen statt
false
zurückzugeben - Für jeden Rückgabetyp eine eigene Methode erstellen
Da das Ändern der Rückgabewerte ein Breaking Change ist, sollte diese Änderung gemeinsam mit anderen Breaking Changes veröffentlicht werden (bspw. QUIQQER 2.0)