IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Dans quel modèle impléter une fonction?


Sujet :

Langage PHP

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut Dans quel modèle impléter une fonction?
    Bonjour, je me pose une question sur comment bien faire.

    Je ne sais pas si cela porte un nom mais concrètement, si on prend l'exemple que je souhaite connaître obtenir les concerts d'un artiste, dans quel modèle dois-je implémenter cette fonction?

    Dans le modèle Artiste ou Concert?

    J'ai toujours entendu qu'il fallait se dire "à qui est-ce que je demande ça?"

    Mais de ma faible expérience dans le développement, je ne sais pas trop quoi faire parce qu'il y a des avantages et des inconvénients dans ces deux cas de figures.

    Je m'en remet donc à vous et à vos expériences.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    J'ai presque envie de dire les deux mais ça va surtout dépendre de ton besoin

    Si tu n'as jamais besoin de retourner autre chose que les concerts d'un artiste une méthode dans artiste me semble appropriée. meme pas besoin de retourner un tableau d'objet un tableau extrait de la bdd est largement suffisant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Artist
    {
    	public function getConcert()
    	{
                  return $tabConcert
    	}
    }
    Par contre si tu as besoin de retourner tous les concerts de plusieurs artistes il peut ête intéressant de mettre cette méthode dans concert.
    Par exemple si $artist est un objet Artist turetourne les concert d'une seule personne si c'est un tableau d'id ou d'objet tu retourner tous les concerts de toutes ses personnes plutôt que de devoir appeler x fois getConcert() sur les instances d'artiste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Concert
    {
    	public function getFor($artist)
    	{
    	}
    }
    Mais siono pas de règle particulière (enfin j'en ai pas en tout cas)

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    J'essaie de faire en sorte de retourner des objets ou tableaux d'objets dans le cas où je veux plusieurs objets (valeurs extraites d'une BDD).

    Je me dis que le plus important est le résultat et je pensais qu'il y avait une façon de faire précise mais apparemment non.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Bonjour,

    Je ne sais pas si cela porte un nom mais concrètement, si on prend l'exemple que je souhaite connaître obtenir les concerts d'un artiste, dans quel modèle dois-je implémenter cette fonction?
    Vu ta demande, moi je dirais qu'il y a bien deux bonnes solutions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Artist
    {
    	public function getConcerts()
    	{
                  return $tabConcert;
    	}
    }
    Sur ce point je suis d'accord avec grunk.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Concert
    {
    	public static function getFor($artist)
    	{
    	}
    }
    Ici je dirais qu'il faut passer par une méthode de classe car retourner une liste de concerts ne concerne pas l'instance de la classe.


    Après au niveau du meilleur choix, chacun à ses préférences, mais le plus simple est d'imaginer la manière la plus simple et logique pour toi de procéder au moment de l'utilisation des classes:

    Te parait-il plus clair et lisible d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $artist = Artist::get($id_artist);
    $liste_concerts = $artist->getConcerts();
    ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $artist = Artist::get($id_artist);
    $liste_concerts = Concert::getFor($artist);
    La différence se fera au niveau de ce que tu considères comme le plus lisible, personnellement (j’écris aussi ce type de classes), j'ai opté pour la version 1, mais encore une fois, c'est personnel...

Discussions similaires

  1. Réponses: 28
    Dernier message: 29/07/2006, 16h04
  2. Réponses: 3
    Dernier message: 09/03/2006, 15h12
  3. [eclipse][API] dans quel répertire installer une API ?
    Par Penelope333 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/01/2006, 17h09
  4. Réponses: 8
    Dernier message: 14/11/2005, 11h27
  5. Pause dans l'exécution d'une fonction
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2005, 07h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo