collection d'objets

Eléphant du PHP | 109 Messages

16 juil. 2008, 09:18

Bonjour

je programme en .net et il est très facile de créer une structure (ou class) et faire une collection personnalisée de cette structure avec des propriétés et méthodes

est ce que quelque chose comme ca est possible en php 5 ?

par exemple

public structure

nom as string
prenom as string
email as string
age as byte

end structure


et une collection de cette structure

merci
Modifié en dernier par rufus_ le 16 juil. 2008, 10:59, modifié 1 fois.

ViPHP
ViPHP | 5924 Messages

16 juil. 2008, 09:39

Euh, poo tout simplement : http://fr3.php.net/manual/fr/language.oop5.php
:-/

Eléphant du PHP | 109 Messages

16 juil. 2008, 09:59

merci mais je ne vois pas de collection d'objet (de class)

ViPHP
ViPHP | 2287 Messages

16 juil. 2008, 10:41

merci mais je ne vois pas de collection d'objet (de class)
En php le concept équivalent est tout simplement une classe.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 109 Messages

16 juil. 2008, 10:49

une collection est une class en C# (qui implement une class de base collection) aussi mais la je ne vois pas comment par exemple remplir un objet (structure ou class , mettons un membre avec nom , prenom , ect...) depuis une base de données et ensuite par la collection de cet objet le distribuer dans du xhtml

si vous connaissez un exemple quelque part
merci

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

17 juil. 2008, 12:37

En PHP, tu n'es pas obligé de faire de la POO, peut-être que pour ton exemple (récup data de la DB, puis génération de HTML), les tableaux suffiront.
Tu fais un tableau multidimensionnel :
$lesUsers[0]['nom']
$lesUsers[0]['prenom']
$lesUsers[0]['age']
$lesUsers[1]['nom']
$lesUsers[1]['prenom']
$lesUsers[1]['age']
etc...

Tu peux réaliser cette opération avec les fonctions de *_fetch_num() ou *_fetch_array()
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 109 Messages

17 juil. 2008, 15:13

merci je sais faire sans objet mais la poo offre d'autres possibilites

ViPHP
ViPHP | 4674 Messages

17 juil. 2008, 17:07

Hey :),

Bah si tu veux utiliser une collection en PHP, dans le sens collection d'objet, c'est simplement un tableau d'objet :
<?php

$collection = array(
    new StdClass(),
    new Exception(),
    …
);
Tu as aussi l'objet ArrayObject de la SPL qui te permet d'avoir des itérateurs, et autre chose sympathique (c'est un wrapperde tableau). Attention, c'est plus lent qu'un tableau, à utiliser avec modération :). Tu trouveras la documentation PHP ici pour l'objet ArrayObject.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 109 Messages

17 juil. 2008, 18:38

merci HyWaN , en effet c'est tout simple

ViPHP
ViPHP | 4674 Messages

17 juil. 2008, 22:55

En relisant, je ne suis pas sûr d'avoir répondu correctement.
Je parle de collection d'objet, c'est à dire un ensemble d'objet. On rappelle qu'un objet est une instance d'une classe.

La notion dont tu parlais au début (structure) est en fait une classe en programmation orientée objet. Si tu veux remplir un objet automatiquement depuis une base de données, la solution de mere-teresa est idéale. Plus léger qu'un objet (dans ce cas), mais qui se manipule aussi bien : un tableau. Mais ici, c'est un tableau de chaîne de caractères (ou tableau de tableau de chaîne dans l'exemple de mere-teresa). Moi je parlais d'un tableau d'objet (qui devient donc une collection). Chaque objet peut représenter une personne, c'est sûr, mais tout dépend de ton besoin.

Pour être sûr que l'on donne les bonnes réponses, j'aimerais que tu détailles ton besoin, merci :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 109 Messages

17 juil. 2008, 23:28

en C# ou vb.net tu crées une structure ou class qui sera ton objet abstrait , les variables ou property sont typées, boolean, date, string , byte , integer , double , ...
ensuite tu crees une class du genre :
Public Class membersCollection : Inherits CollectionBase qui sera une collection de ta structure et uniquement de ca
Public Function Add(ByVal item As members) As Integer
Return InnerList.Add(item)
End Function

tu écris les fonctions qui vont remplir les members depuis la base de données
ainsi ce n'est pas un simple array c'est tres riche comme possibilités, on se sert de ca sans cesse

je suis interresse par php5 alors que ca m'a jamais interresse avant a cause de cette possibilite de se servir d'objets

ViPHP
ViPHP | 4674 Messages

17 juil. 2008, 23:31

Oui ok, bah là c'est clairement un objet avec des méthodes. Je confirme mes dires et ceux de Sékil, va jeter un œil à la POO de PHP, et voir les tableaux pour faire des collections.
Attention à ne pas ralentir le script. L'idée de Mere-teresa est bonne, et rapide.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 5924 Messages

18 juil. 2008, 01:50

Jette un oeil à la SPL. HyWaN te parlait de ArrayObject, cela se rapproche de ce que tu disais, c'est à dire que tu peux faire un objet qui pourra être utilisé comme un tableau. Mais il n'y a rien qui pourraît clairement s'apparenter à des collections, et surtout qui serait supporté par toutes les sources de données. Il faudra souvent un formatage des données pour les adapter à la structure de données.

Eléphant du PHP | 109 Messages

18 juil. 2008, 09:23

c'est vrai que .net compile le code en dll et c'est different ... vous me direz pourquoi passer a php quand on a .net ?
reponse : microsoft me gave :-) et j'aime l'esprit du libre

je vais voir de plus pres ces objets php

et encore merci pour votre aide

ViPHP
ViPHP | 5924 Messages

18 juil. 2008, 09:41

c'est vrai que .net compile le code en dll et c'est different ... vous me direz pourquoi passer a php quand on a .net ?
Parce que c'est complètement différent et que cela ne sert pas à la même chose...