Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Classe contenant une collection d'objets

2 réponses
Avatar
Niko
Bonjour,

Je débute en POO et je cherche comment définir dans une classe php (v5)
un collection d'objet.

Pour être explicite, je vous donne un exemple.

J'ai une classe User avec différents attributs tels que nom, login,
password, etc.

A chaque utilisateurs doivent être associés des droits sur des éléments
représentant une collection

droits sur les archives -> consultation, modification, suppression ou aucun,
droits sur les documents courant -> création, modification, suppression,
archivage ou aucun,
etc..

Comment dans ma classe User définir cette collection et ensuite lors de
l'instanciation, comment accéder à ces éléments.

Faut-il que je crée des tableaux synchronisés ou est-ce que je peux
définir à l'intérieur de la classe User une classe droits qui va
contenir les attributs Type_de_droit et autorisation ?

Merci d'avance

Niko

2 réponses

Avatar
bruno at modulix
Niko wrote:
Bonjour,

Je débute en POO et je cherche comment définir dans une classe php (v5)
un collection d'objet.


Si ta collection n'a pas de sémantique particulière, un array suffit.
Sinon, crée une classe encapsulant un array et gérant la sémantique
particulière à ta collection.

Pour être explicite, je vous donne un exemple.

J'ai une classe User
(snip)


A chaque utilisateurs doivent être associés des droits sur des éléments
représentant une collection
(snip)

Comment dans ma classe User définir cette collection et ensuite lors de
l'instanciation, comment accéder à ces éléments.
(snip)


Si tu commençais par définir *comment* tu veux utiliser ces infos ? En
OO, c'est l'interface le plus important.

Accessoirement, vu le modèle d'exécution de PHP, tu a vraiment intérêt à
rester aussi simple que possible. Par exemple en utilisant au maximum
les builtins (dans ton cas, les tableaux associatifs).

Egalement, en ce qui concerne les classes métiers (dont User est un
exemple), en étant le plus paresseux possible - je veux dire: en
attendant qu'une info soit demandée pour aller effectivement la chercher
(et en la mémorisant à ce moment là pour ne pas aller la rechercher à
chaque demande suivante).

Mes 2 centimes
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
Jean-Marc Molina
Niko wrote:
Je débute en POO et je cherche comment définir dans une classe php
(v5)
un collection d'objet.


Pourquoi ne pas implémenter l'interface Iterator ? C'est une nouveauté de
PHP 5.