Mysql
 sql >> Base de données >  >> RDS >> Mysql

plusieurs fonctions est une grande fonction en PHP ?

Une fonction doit avoir des responsabilités clairement définies et étroites avec des types de retour clairement définis et minimalistes. Si vous commencez à créer des "fonctions divines" qui font tout et l'évier de la cuisine en fonction des arguments que vous transmettez, vous entrez lourdement dans le territoire du code spaghetti difficile à maintenir. Vous ne voulez pas une fonction qui fait A et retourne B si vous lui passez X, mais fait C et retourne D si vous lui passez Y etc...

C'est une bonne idée de commencer concret et généralisez au fil du temps au fur et à mesure que vous voyez des modèles similaires émerger. Alors, créez les méthodes dont vous avez réellement besoin :

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

Si vous constatez que vous avez partagé du code entre ces fonctions, unifiez le code en arrière-plan pour le garder SEC :

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

Ne commencez pas dans l'autre sens, en pensant que vous "n'avez besoin que de X, Y et Z" qui semblent suffisamment similaires pour être unifiés en une seule méthode, puis découvrez plus tard qu'il existe de petites différences entre X, Y et Z et salissez votre code avec des cas particuliers pour chacun. Cela conduit simplement à des fonctions qui sont soit gigantesques, soit si générales qu'elles ne font pratiquement rien par elles-mêmes.