sql >> Base de Datos >  >> RDS >> Mysql

múltiples funciones es una gran función en PHP?

Una función debe tener responsabilidades estrechas y claramente definidas con tipos de retorno minimalistas y claramente definidos. Si comienza a crear "funciones divinas" que hacen todo y el fregadero de la cocina según los argumentos que pase, se adentrará en el territorio del código de espagueti difícil de mantener. No quieres una función que haga A y devuelva B si le pasas X, pero que haga C y devuelva D si le pasas Y, etc...

Es una buena idea empezar concreto y generalice con el tiempo a medida que vea surgir patrones similares. Por lo tanto, cree los métodos que realmente necesita:

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

Si encuentra que ha compartido código entre estas funciones, unifique el código detrás de escena para mantenerlo SECO:

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

No comience al revés, pensando que "solo necesita X, Y y Z", que parecen lo suficientemente similares como para unificarse en un solo método, y luego descubra que hay pequeñas diferencias entre X, Y y Z y ensucie su código con casos especiales para cada uno. Eso solo conduce a funciones que son enormes o tan generales que básicamente no hacen nada por sí mismas.