Mysql
 sql >> Baza danych >  >> RDS >> Mysql

wiele funkcji to jedna wielka funkcja w PHP?

Funkcja powinna mieć jasno określone, wąskie obowiązki z jasno określonymi, minimalistycznymi typami zwracanych. Jeśli zaczniesz tworzyć „boskie funkcje”, które zrobią wszystko i zlewozmywak w zależności od argumentów, które podasz, wpadniesz na terytorium trudnego do utrzymania kodu spaghetti. Nie chcesz funkcji, która wykonuje A i zwraca B, jeśli przekazujesz X, ale wykonuje C i zwraca D, jeśli ją przekazujesz Y itd...

Dobrym pomysłem jest rozpoczęcie betonowania i uogólniaj w miarę upływu czasu, gdy widzisz pojawiające się podobne wzorce. Stwórz więc metody, których faktycznie potrzebujesz:

public function findUserById($id)
public function findUserByEmail($email)
public function updateCompanyName($id, $newName)

Jeśli okaże się, że masz wspólny kod między tymi funkcjami, ujednolicić kod za kulisami, aby był suchy:

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) {
    ...
}

Nie zaczynaj na odwrót, myśląc, że „potrzebujesz tylko X, Y i Z”, które wydają się na tyle podobne, że można je ujednolicić w jedną metodę, a później dowiadujesz się, że są małe różnice między X, Y i Z i zaśmiecasz swój kod specjalne przypadki dla każdego. To po prostu prowadzi do funkcji, które są albo ogromne, albo tak ogólne, że w zasadzie same nic nie robią.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Model Yii ze złożonym kluczem podstawowym

  2. MYSQL nadrzędny podrzędny Ta sama tabela; PHP Nest Children w rodzicach jako wielowymiarowa tablica

  3. PHP Wybierz z MySQL, gdzie pole daty jest 7 dni w przyszłości

  4. Mysql pogrupuj według dwóch kolumn i wybierz maksymalną wartość z trzeciej kolumny

  5. mysql Wybieranie z dwóch różnych tabel.