Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/11/2007, 11h16   #1
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
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)
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 11h38   #2
Membre du Club
 
Avatar de Shin_RockmanX
 
Inscription : novembre 2003
Messages : 78
Détails du profil
Informations personnelles :
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 78
Points : 41
Points : 41
Envoyer un message via MSN à Shin_RockmanX
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 :
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...
Shin_RockmanX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 20h07   #3
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
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)
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 22h20   #4
Nouveau Membre du Club
 
Développeur Web
Inscription : avril 2006
Messages : 37
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 37
Points : 37
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.
Méthylbro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2007, 11h37   #5
Nouveau Membre du Club
 
Développeur Web
Inscription : avril 2006
Messages : 37
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 37
Points : 37
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
Méthylbro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2007, 14h57   #6
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
de rien
bonne continuation
__________________
C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2007, 15h51   #7
Nouveau Membre du Club
 
Développeur Web
Inscription : avril 2006
Messages : 37
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 37
Points : 37
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 :
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 :
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
Type de fichier : rar class-Collection.rar (2,0 Ko, 7 affichages)
Méthylbro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 10h17   #8
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
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)
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 02h33   #9
Nouveau Membre du Club
 
Développeur Web
Inscription : avril 2006
Messages : 37
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 37
Points : 37
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.
Méthylbro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h08.


 
 
 
 
Partenaires

Hébergement Web