Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

múltiplas funções é uma grande função em PHP?


Uma função deve ter responsabilidades estreitas e claramente definidas com tipos de retorno minimalistas e claramente definidos. Se você começar a criar "funções de deus" que fazem tudo e a pia da cozinha, dependendo de quais argumentos você passa, você está entrando fortemente no território do código espaguete difícil de manter. Você não quer uma função que faça A e retorne B se você passar X, mas faça C e retorne D se você passar Y etc...

É uma boa ideia começar concreto e generalize ao longo do tempo à medida que você vê padrões semelhantes surgirem. Então, crie os métodos que você realmente precisa:
public function findUserById($id)
public function findUserByEmail($email)
public function updateCompanyName($id, $newName)

Se você achar que compartilhou código entre essas funções, unifique o código nos bastidores para mantê-lo DRY:
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) {
    ...
}

Não comece ao contrário, pensando que você "só precisa de X, Y e Z" que parecem semelhantes o suficiente para serem unificados em um método, depois descobrindo que existem pequenas diferenças entre X, Y e Z e sujando seu código com casos especiais para cada um. Isso apenas leva a funções que são gigantescas ou tão gerais que basicamente não fazem nada por conta própria.