Page 1 sur 1

collection objet

Posté : 10 févr. 2013, 21:41
par strausslyon
Bonjour,

depuis quatre ans je développais en procédural, je me suis mis à l'objet depuis quelque temps.

Sur de mes sites je suis en train donc de développer une gestion de catégories en objet.
j'ai crée une classe catégorie avec des membres comme nom,actif,date,id-parent,description...etc.
dans le constructeur je passe en paramètre l'id de la catégorie.

pour afficher la totalité des catégories,je sais pas quel méthode utiliser :
- soit je crée une classe listecatégorie avec comme membre un tableau d'objet catégorie et des méthode comme getAllcategorie qui remplit le menbre
- soit je crée directement une méthode statique dans la classe catégorie, ce qui me permettrai de l'utiliser comme ceci ==> $items = categorie::getAllcategorie()
-soit je crée une classe listecatégorie sans constrcuteur et avec seulement des methode statiques.

en étant débutant je sais pas trop comment procéder, c'est pour ça que je fais appel à votre savoir pour m'aider. :D

je vous remercie

Re: collection objet

Posté : 14 févr. 2013, 00:34
par moogli
salut,


avant d'aller plus loin je te conseil de lire des cours sur la modélisation objet, ainsi que les différents motif de conception.

Dans ton cas tu aurai un objet qui contient les données (un pojo en java). cette objet n'a aucune intelligence.

ensuite il te faut une classe DAO (Data Access Object). Cette classe permet l'accès aux données (si si :) ).

donc par exemple si l'on modélise un forum on a
- des questions, (auteur, titre, texte, catégorie)
- des réponses (auteur, titre, texte)
- des catégories (id, titre, description)
- membres (id, pseudo, motdepasse etc )

docn la tu va avoir 4 objets ne contenant que les propriétés correspondante.
par exemple
<?php
class membre {
$peudo;
$motdepasse;
$id;
}
class question {
$id
$categorie; // un objet catégorie
$titre, 
$texte;
$auteur; // un objet membre
}
?>
A partir de la il te faut une classe permettant de d'aller chercher les infos de la base de données.
Généralement on fait une classe DAO pour type d'objet (utile)
pour les membres la dao peux contenir :
- getbyid($idmembre) retourne un objet membre avec les infos de la base
- getListMembre() retourne un tableau d'objet membre
etc

ensuite dans ton code tu utilise la classe DAO pour accéder au info
par exemple
<?php
$dao = new MembreDao();
$listMembre =  $dao->getListMembre();
foreach($listMembre as $m ) {
// ...
}
?>
Et voila tu a mis en place le patterne DAO ;)

tu as l'avantage de pouvoir changer l'origine des données (autres sgbd fichier etc etc ).


bon courage

@+