Frage der Umsetzung
password_hash() hat keine Funktion um auch nur irgendeine Komplexität des Passwortes (Länge, genutzter Zeichenvorrat, ggf. Anzahl Wörter "Pferd miaut Diesel Vogel") festzustellen und (womöglich noch nach einem Test gegen häufig genutzte Passwörter) zurück zu weisen. Wie wär's damit, sowas in Deiner Klasse zu verbauen?
public function __construct( $body )
Neverever. Erst mal ist $body
„schwer selbstverwirrend“, denn ich denke bei dem Name und im Kontext „PHP“ eher an einen HTML-Body. Ich sehe auch nichts, was es notwendig machen könnte, die Daten als Hash/Array zu übergeben. Soweit ich das sehe sind es auch nur drei Werte: Benutzernamem, Klartextpasswort, Mailadresse - und die stehen in der Superglobalen $_POST
.
Soll heißen, Du könntest bequem, einfach und ohne jedes verwirrendes Umherkopieren
public function __construct(
$postUsernameKey = 'user',
$postPasswordKey1 = 'pass1',
$postPasswordKey2 = 'pass2',
$postEmailKey = 'mail'
)
verwenden und im Idealfall (die Formularfelder tragen gleich diese Namen) ohne Parameter aufrufen. Außerdem kannst Du dann auch gleich eine Methode bauen, welche das Anmeldeformular „austut“, bei einem Konflikt (bereits verwendeter Username, zurück gewiesenes Passwort, zurück gewiesene Mailadresse) nochmals (dann ergänzt um den Hinweis und angereichert mit den Daten, welche die Prüfung bestanden haben.) aus/oder zurück gibt.
Das Passwort brauchst Du zweimal oder willst Du diese Prüfung etwa weglassen oder an anderer Stelle durchführen? Meine Philosophie von „Objektorientierung“ wäre da eine andere.