Page 1 sur 1

Question objet : quelle stratégie ?

Posté : 05 nov. 2014, 19:13
par c0der63
Bonjour

je débute en objet et me pose la question suivante :

Imaginons que j'ai une classe "client" et que je crée une page de recherche dans toute ma base : est que la fonction de recherche doit être dans ma classe client ? dans une autre classe ? complètement ailleurs?

Merci de vos conseils !

Re: Question objet : quelle stratégie ?

Posté : 05 nov. 2014, 21:02
par xTG
Ta class client est quoi ? Un modèle ? Une class de gestion ?

Si c'est un modèle elle ne fait que stocker des données.
Donc ta recherche n'a rien à faire là dedans, cependant ta recherche va instancier un objet client pour chaque élément trouvé.

Si c'est une class de gestion tu peux à la rigueur faire un handler de recherche spécifique au client (fonction static) dedans qui serait appelé depuis une fonction extérieure à la class et plus générale.

Re: Question objet : quelle stratégie ?

Posté : 05 nov. 2014, 21:07
par c0der63
Merci pour ta réponse !

je ne comprend pas (encore!) tout ce dont tu parles. Je suis en phase d'apprentissage.

A ce stade j'ai créé une classe client qui me permet de créer un client en base de données (nom, adresse, etc.) ou de récupérer ces même info pour un client existant. (c'est ça que tu appelles une classe de gestion ?)

Dans ce cadre là j'hésite à mettre une fonction de recherche dans toute la base dans cette classe car "un client" (objet de ma classe) n'est pas la même chose qu' "une liste de clients".

Re: Question objet : quelle stratégie ?

Posté : 05 nov. 2014, 22:49
par Genova
Ta classe Client contient tout ce qui est relatif à 1 client : nom, prénom, age, etc...
Lorsque tu fais une recherche, tu veux récupérer X clients (une collection de clients), donc tu vas récupérer un certain nombre d'objets Client.

La bonne pratique c'est d'avoir une autre classe, que tu vas appeler Clients par exemple, et qui va effectuer toutes les opérations qui concernent X clients. Donc tu aurais un code du genre :
class Client
{
   public $nom;
   public $prenom;
}

class Clients
{
   public function rechercherClients()
   {
      // Retourne un tableau avec tous les Client trouvés
   }
}

Re: Question objet : quelle stratégie ?

Posté : 05 nov. 2014, 23:32
par c0deur63
Top merci, en effet ça parait plus propre comme ça !