Je construis une classe d'utilisateurs qui gère la création, la suppression et la modification d'un utilisateur générique. Ma classe doit être utilisée de cette façon:Une classe d'utilisateurs, bonne approche?
# creation
user::create($username, $password, $email); // Does not need of $id
# modification
$u = new user($id);
$u->edit('password', $new_password);
# deletion
$u->delete();
Fondamentalement, la classe contiennent une méthode statique create() qui ne nécessite pas l'obliviously id utilisé comme argument. Après la création, vous pouvez rassembler des informations utilisateur et gérer l'utilisateur en créant une instance de l'utilisateur de la classe et définir en argument le $ id de l'utilisateur. Est-ce une bonne conception ou devrais-je créer quelque chose comme:
# creation
$users = new genericUserMethod();
$users->create($username, $password, $email);
# modification
$u = new specificUser($id);
$u->edit('password', $new_password);
# deletion
$u->delete();
... Créer 2 classes différentes. Ou y a-t-il un autre moyen?
J'aime ça aussi, et c'est ce que j'ai fait dans le passé. Peut-être ajouter un peu d'utilisation (création de nouveaux utilisateurs, chargement d'anciens, suppression, etditing, etc.) ... Autre que cela, +1 – ircmaxell
L'utilisation du constructeur pour charger implicitement l'objet de la base de données n'est pas un 'bon design'. Vous ne pouvez pas avoir la possibilité d'indiquer que le $ $ donné n'est pas présent dans la base de données. De plus, le constructeur ne devrait servir qu'à créer de nouvelles instances valides d'une classe. -1 – mschneider
@mschneider vous avez raison, le constructeur pourrait aussi être paramétré comme protégé et faire 2 méthodes statiques "créer" et "charger" par exemple qui appelle en interne le constructeur ... mais cela était juste comme un simple skeletton ... – maid450