Mysql
 sql >> Database >  >> RDS >> Mysql

più funzioni è una grande funzione in PHP?

Una funzione dovrebbe avere responsabilità ristrette e chiaramente definite con tipi di restituzione chiaramente definiti e minimalisti. Se inizi a creare "funzioni divine" che fanno tutto e il lavello della cucina a seconda degli argomenti che passi, stai andando pesantemente nel territorio del codice spaghetti difficile da mantenere. Non vuoi una funzione che faccia A e restituisca B se gli passi X, ma faccia C e restituisca D se gli passi Y ecc...

È una buona idea iniziare con concreto e generalizzare nel tempo man mano che emergono schemi simili. Quindi, crea i metodi di cui hai effettivamente bisogno:

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

Se scopri di aver condiviso il codice tra queste funzioni, unifica il codice dietro le quinte per mantenerlo ASCIUTTO:

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

Non iniziare il contrario, pensando di "aver bisogno solo di X, Y e Z" che sembrano abbastanza simili da essere unificati in un unico metodo, quindi scoprire in seguito che ci sono piccole differenze tra X, Y e Z e disseminando il tuo codice con casi speciali per ciascuno. Questo porta solo a funzioni che sono enormi o così generali che praticamente non fanno nulla da sole.