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 :

[POO] Liste d'objets


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut [POO] Liste d'objets
    Bonjour,
    je voudrais savoir comment créer un objet qui permettrait de stocker une liste d'objets ?
    Par exemple :
    - class UserList : qui contiendrait une liste d'objets ci-dessous
    - class User
    Pourriez-vous m'éclairer s'il vous plait ?
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  2. #2
    Membre du Club Avatar de Shin_RockmanX
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    ben tu fais un objet UserList qui a comme attribut un array() php dans lequel tu stock tes données

    voici une interface que tu pourrais utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class UserList {
    var $myArray=array();
     
    function UserList() {}
     
    function  add(user) {}
    function remove(user) {}
    }
    ceci dit, tu peux utiliser un array() php... ça marche très bien vu qu'on est dynamiquement typé dans ce language... ça te permet de faire ce que tu veux sans casts...

  3. #3
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut
    Merci pour ta réponse. En fait j'etais en train de regarder du coté de la SPL avec les itérateurs.
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  4. #4
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    Le sujet est marqué comme résolu. Mais tant pis.

    Je me lance vraiment à fond dans la POO (avec php5) que depuis quelques semaines. Et dans les concepts de la POO ; il en existe un que j'ai encore du mal à saissir et maitriser : les collections.

    Alors c'est vrai. On peut concevoir une collection d'objet comme un simple tableau d'objets ; ou mieux encore définir une classe MyClassList contenant un ensemble d'objets de type MyClass.

    Mais PHP (ce magnifique outil que nous adorons tous ...) ne posséde il pas - par défaut - quelque chose qui puisse s'apparenter à une collection ? Ou bien faut il soit même à chaques fois coder ses propres collections de classes ?

    J'ai aussi feuilleté la SPL ; et les itérateurs parraissent être une piste. Mais malheuresement la langue de Shakespare et moi ... (je suis plutôt latin ; donné moi une doc en espagnol je serais plus à l'aise :s)

    Donc si quelqu'un aurait tout, ou partie d'un élément de réponse ... Voire même un simple lien vers un article ou tuto qui m'aurais échappé a ce sujet.

    Merci.

  5. #5
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    L'équivalent des classes de collection (comme on peut les trouver en java) s'apparente donc aux Iterateurs en php. C'est niquel ca ^^

    A moi un long week end a passer dans la doc :p

  6. #6
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut
    de rien
    bonne continuation
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  7. #7
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    Voilà ; après quelques jours à travailler dessus ; j'en arrive à un résultat présentable.

    voici donc ma classe de Collection d'objets.

    rapide descriptif des méthodes d'accés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    get_type() // Retourne le type des objets contenu dans la collection
    count() // Retourne le nombre d'objets contenu dans la collection
    if_exists(Object) // Teste si un objet identique existe dans la collection
    get_key(Object) // Renvoie l'index d'un objet de la collection
    get_object(int) // Renvoie l'objet de la collection contenu à l'index passé en paramètre
    get_range(int, int, [int]) // Retourne une partie de la collection. Voir la doc dans la source.
    insert(Object) // ajoute l'objet à la collection
    update(int, Object) // Modifie l'objet a l'index passé en paramètre
    delete(int) // Supprime l'objet de la collection à l'index passé en paramètre 
    map(String, [array]) // Applique la méthode String sur tous les objets de la collection
    flush() // Vide la collection
    Exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    require('class-Collection.inc.php');
     
    class MyClass {
    	public $msg;
    	function __construct($msg){
    		$this->msg = $msg;
    	}
    	function __toString(){
    		return $this->msg;
    	}
    }
    $MyCollection = new Collection('MyClass');
     
    $MyCollection->insert(new MyClass('message 1'));
    $MyCollection->insert(new MyClass('message 2'));
    $MyCollection->insert(new MyClass('message 3'));
    $MyCollection->insert(new MyClass('message 4'));
    $MyCollection->insert(new MyClass('message 5'));
    $MyCollection->insert(new MyClass('message 6'));
    $MyCollection->insert(new MyClass('message 7'));
    $MyCollection->insert(new MyClass('message 8'));
    $MyCollection->insert(new MyClass('message 9'));
    $MyCollection->insert(new MyClass('message 10'));
    $MyCollection->insert(new MyClass('message 11'));
    $MyCollection->insert(new MyClass('message 12'));
    $MyCollection->insert(new MyClass('message 13'));
    $MyCollection->insert(new MyClass('message 14'));
    $MyCollection->insert(new MyClass('message 15'));
    $MyCollection->insert(new MyClass('message 16'));
    $MyCollection->insert(new MyClass('message 17'));
    $MyCollection->insert(new MyClass('message 18'));
    $MyCollection->insert(new MyClass('message 19'));
    $MyCollection->insert(new MyClass('message 20'));
    echo $MyCollection;
     
    foreach( $MyCollection as $key => $object ){
     
    	echo $key." : ".$object."<br />";
    	$object->msg = "Ahahahahah !";
     
    }
    echo "<hr />";
    foreach( $MyCollection as $key => $object ){
     
    	echo $key." : ".$object."<br />";
     
    }
    Fichiers attachés Fichiers attachés

  8. #8
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut
    Salut,
    désolé de ne répondre que maintenant, super le travail que tu as fait
    suis débordé en ce moment mais je regarderai plus en détails, pour voir ce que je peux y apporter, s'il y a lieu
    Bonne journée
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  9. #9
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    merci.

    Toutefois ce que j'ai montré est a titre d'exemple et peut largement être criticable.
    Certaines méthodes (comme la méthode map()) fonctionnent encore mal. Mais j'essaye de résoudres les problémes petit a petit.

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

Discussions similaires

  1. pre allocation mémoire pour liste d'objet (poo)
    Par masson.cle dans le forum MATLAB
    Réponses: 0
    Dernier message: 19/05/2012, 22h26
  2. [POO] Listing avec des objets
    Par estampille dans le forum Langage
    Réponses: 5
    Dernier message: 27/08/2007, 16h19
  3. [POO] Liste des variables de mon Objet
    Par hisy dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2006, 10h51
  4. Aide sur POO :: Classe et liste d'objet
    Par Andry dans le forum Langage
    Réponses: 1
    Dernier message: 23/01/2006, 15h51
  5. liste d'objets
    Par Pierrot dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2002, 09h56

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