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

  1. #1
    Membre du Club
    Homme Profil pro
    Reconversion
    Inscrit en
    novembre 2018
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2018
    Messages : 54
    Points : 60
    Points
    60

    Par défaut Débutant POO, passer un objet en paramètre d'un constructeur

    Bonjour,

    Je m'initie à la POO depuis peu et j'essaie de réaliser un petit exercice de livre d'or : une page toute simple qui permet de laisser des commentaires grâce à un formulaire tout simple (pseudo et message)
    J'aimerais faire apparaitre la date de publication grace à un objet DateTime également

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(isset($_POST['username']) && isset($_POST['message'])) {
        $message = new Message($_POST['username'], $_POST['message'], new DateTime);
    Et voici mon constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function __construct($username, $message, DateTime $date)
        {
            $this->username = $username;
            $this->message = $message;
            $this->date = $date;
        }
    Ce début de logique est-il correct ?

    Cordialement

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    5 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 5 405
    Points : 14 405
    Points
    14 405

    Par défaut

    Oui , si ce n'est que si à chaque instanciation de ton objet tu lui construit un datetime à la date du jour , autant le faire directement dans le constructeur. Ça évite de retaper le paramètre à chaque fois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function __construct($username, $message)
    {
            $this->username = $username;
            $this->message = $message;
            $this->date = new Datetime();
    }
    Cette remarque n'est valable que si le datetime que tu passes n'est pas modifié par quelque chose avant. Dans mon exemple , on demande toujoursu ndatetime à la date courante donc pas de problème.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Reconversion
    Inscrit en
    novembre 2018
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2018
    Messages : 54
    Points : 60
    Points
    60

    Par défaut

    Ok merci beaucoup, j'ai encore du mal avec les paramètres et surtout quand il s'agit d'objets je commence à paniquer un peu !
    Cela dit, l'instance de ma logique n'est écrite qu'une fois donc ça revient au même non (je crée une instance de ma classe Message si le formulaire est correctement rempli) ? J'espère ne pas dire une grosse bêtise...

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    5 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 5 405
    Points : 14 405
    Points
    14 405

    Par défaut

    Si tu n'instancie qu'une fois ta classe Message , effectivement le faire dans le constructeur ou le passer en paramètre revient au même en terme de "difficulté" d'écriture.
    L'avoir en paramètre permet de rendre la chose plus facilement évolutive si par exemple un jour tu as besoin de créer un message à une date différente.

    C'est un peu la problématique du développement. Faire du code extrèmement modulable et évolutif est en général compliqué et chronophage. Il faut donc arriver à identifier ce qu'on risque d'avoir besoin de faire évoluer dans le temps pour effectivement rendre ces parties facilement évolutives et laisser le reste "fixe" pour se faciliter un peu la vie.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Reconversion
    Inscrit en
    novembre 2018
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2018
    Messages : 54
    Points : 60
    Points
    60

    Par défaut

    Merci encore pour cette réponse très claire. Tu ne donnerais pas des cours particuliers dans la région bordelaise à tout hasard ? Tu sembles très pédagogue !

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    5 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 5 405
    Points : 14 405
    Points
    14 405

    Par défaut

    Haha non ,
    j'eusse donné des cours mais c'était pas particulier et encore moins à bordeaux
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/06/2007, 17h34
  2. [RCP][débutant] Comment passer un objet d'une vue à une autre
    Par jycronier dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 20/07/2006, 15h13
  3. [POO] débutant passer un objet en paramètre
    Par samplaid dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/05/2006, 12h46
  4. Réponses: 5
    Dernier message: 17/08/2005, 12h40
  5. [POO] Passer un objet HTML en argument.
    Par defacta dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/12/2004, 10h44

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