2012-10-21 3 views
1

J'ai un objet en PHP avec une composition d'objets tels que:POO Composition - Faire face à des classes comme des instances distinctes et des objets circulaires

// Settlement (DB Fields: id, name) 
id = 1, name = 'Meep', jobs = array() 
- 
// Job (DB Fields: id, action, settlement_id) 
id = 1, action = 'build' 

Je peux donc faire quelque chose comme: $settlement->getJobs() et il y retourne un tableau En ce qui concerne le traitement de ces travaux, je dois également connaître le Règlement. Donc, je suis un peu confus quant à la façon dont il devrait exister.

Est-ce qu'un Job doit contenir un Settlement et faire quelque chose comme: $job->getSettlement() ou est-ce qu'il y aurait une boucle infinie d'imbrication/composition?

Ou lorsque j'obtiens l'instance de la base de données pour traiter le travail, dois-je d'abord obtenir l'objet Settlement qui contient le Job à traiter afin qu'il soit identique à celui d'avant?

Dans ma base de données le Job est attaché à la Settlement via settlement_id clé étrangère si dans mon entité Job Je ne sais pas si je devrais le stockage juste settlement_id ou l'ensemble Settlement mais il y a la boucle d'imbrication/composition.

Répondre

1

Il est parfaitement acceptable que les nœuds se lient les uns aux autres. Vous pouvez avoir une instance du Settlement dont Job il est à l'intérieur de l'objet Job.

+0

merci, C'est une de ces choses que les gens n'enseignent pas vraiment parce que c'est considéré comme évident: P –

Questions connexes