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 :

Mes débuts en POO [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Par défaut Mes débuts en POO
    Bonjour,

    Je fais mes début en POO grâce aux bons tuto de ce site mais là je coince un peu...

    Ca fait 8 ans que je programme en PHP 3 puis 4, je passe donc au 5 et j'aurai besoin de votre aide pour savoir comment vous feriez pour résoudre le problème suivant :

    J'ai des "Joueurs" avec des données à stocker et des actions à faire.

    Je créé donc la class Joueurs avec des données et fonctions publiques.

    Lorsqu'un joueur se connecte je créé un nouveau joueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Joueur = new Joueur("variable","variable","etc..");
    Ma question est la suivante :

    Que feriez-vous dans mon cas si vous deviez créer un nombre de joueurs indéfinies au cours du script et si vous deviez leur assigner des variables, leur faire faire des actions ?!

    Mon expérience de programmation procedurable me ferai faire un tableau :

    A chaque nouveau joueur je ferai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Joueurs[] = new Joueur("variables");
    Et pour faire faire une action communes à mes joueurs j'exploiterai mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($Joueurs as $Joueur) $Joueur->CommencerPartie();
    Avec tout ce que j'ai lu en POO j'ai bien peur de faire fausse route.

    Je vous remercie d'avance pour votre aide !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Par défaut
    c'est pas parce que tu utilise la puissance de POO que les éléments de base deviennent caduc
    donc oui utilise un tableau pour créer une liste.
    POO devient vraiment intéressant quand tu utilise l'héritage dans les classes.

  3. #3
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Le plus simple est de partir sur une collection (un container) qui contiendra tous tes objets. Tu resteras sur le principe de la POO.

    Pour celà, tu peux implémenter la class Iterator.

    Fait quelques recherches la-dessus (je pourais te donner celle que j'ai crée ya pas longtemps, au final).

    Bonne recherche

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Par défaut
    J'hésite entre 2 styles...

    1) Pour chaque joueur instancier la class puis stocker les instances dans un tableau.

    2) Ne créer qu'une seule instance qui contient tous les joueurs dans un tableau.

    Qu'en dites-vous ?

  5. #5
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Dans tous les cas il faudra un objet Joueur pour chaque personne connectée. C'est bien ce que ta classe représente.

    Concernant le stockage, un tableau suffit sinon tu peux utiliser SplObjectStorage (Iterator étant une interface et non une classe).

    http://fr.php.net/manual/fr/class.splobjectstorage.php

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Iterator étant une interface et non une classe
    Merci de me remettre à ma place, c vrai que je suis pas doué sur les classes.

    J'ai regardé un peu, splobjetstorage implémente parmis les interfaces, l'interface iterator.
    Mais une classe plus simple serait possible non?

    @dpmx, je te dirais le style 1 pour la raison suivante: ça me parait plus facile dans la comprenhension d'instancier une classe par joueur. surtout si ensuite tu veux ajouter des attributs sur le joueur

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 12/11/2009, 10h21
  2. [Windows Server 2003] - Mes débuts
    Par franck1001 dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 11/07/2008, 01h05
  3. [POO] Mes débuts en OO sur PHP
    Par oranocha dans le forum Langage
    Réponses: 2
    Dernier message: 03/03/2008, 18h46
  4. mes débuts
    Par steph35 dans le forum Mon site
    Réponses: 6
    Dernier message: 09/06/2006, 21h33

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