Eine Funktion sollte klar definierte, enge Verantwortlichkeiten mit klar definierten, minimalistischen Rückgabetypen haben. Wenn Sie anfangen, "Gottfunktionen" zu erstellen, die alles tun und die Küche spülen, je nachdem, welche Argumente Sie übergeben, begeben Sie sich stark in das Gebiet des schwer zu wartenden Spaghetti-Codes. Sie wollen keine Funktion, die A ausführt und B zurückgibt, wenn Sie X übergeben, aber C ausführt und D zurückgibt, wenn Sie Y übergeben usw. ...
Es ist eine gute Idee, konkret anzufangen und im Laufe der Zeit verallgemeinern, wenn sich ähnliche Muster abzeichnen. Erstellen Sie also die Methoden, die Sie wirklich brauchen:
public function findUserById($id)
public function findUserByEmail($email)
public function updateCompanyName($id, $newName)
Wenn Sie feststellen, dass Sie Code zwischen diesen Funktionen geteilt haben, vereinheitlichen Sie den Code hinter den Kulissen, um ihn TROCKEN zu halten:
public function findUserById($id) {
return $this->find('SELECT * FROM user WHERE id = ?', $id);
}
public function findUserByEmail($email) {
return $this->find('SELECT * FROM user WHERE email = ?', $email);
}
protected function find($query, $arg) {
...
}
Fangen Sie nicht anders herum an und denken Sie, Sie brauchen "nur X, Y und Z", die ähnlich genug erscheinen, um in einer Methode vereinheitlicht zu werden, und finden Sie später heraus, dass es kleine Unterschiede zwischen X, Y und Z gibt, und verunreinigen Sie Ihren Code damit Sonderfälle für jeden. Das führt nur zu Funktionen, die entweder gigantisch oder so allgemein sind, dass sie im Grunde genommen nichts für sich tun.