[GORM] isRelated?

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Gesperrt
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

[GORM] isRelated?

Beitrag von Screeze » 08.10.2010, 20:18:05

der GORM hat zwar die Funktion isAssociated(), aber was mache ich, wenn ich wissen will, ob ein Objekt mit einem anderen durch eine komposition verbunden ist?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: [GORM] isRelated?

Beitrag von dr.e. » 08.10.2010, 20:42:25

Hallo Ralf,

das ist in der Tat eine gute Frage. Im Grunde kannst du loadRelationMultiplicity() nutzen, was aber zugegeben, nicht die performanteste Lösung ist. Die einfachere Variante wäre eine Methode isComposed(), die abfragt, ob ein Objekt zu einem anderen über eine Beziehung komponiert ist. Die Signatur sollte meiner Ansicht nach so aussehen:

Code: Alles auswählen

isComposed(string $relationName, GenericDomainObject $child, GenericDomainObject $father)
Was denkst du?
Viele Grüße,
Christian

Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [GORM] isRelated?

Beitrag von Screeze » 08.10.2010, 21:07:18

loadRelationMultiplicity()
bringt doch nur die zahl der objekte die über eine beziehung verknüpft sind, das können aber auch andere objekte der gleichen beziehung sein oder?
dr.e. hat geschrieben:Die einfachere Variante wäre eine Methode isComposed(), die abfragt, ob ein Objekt zu einem anderen über eine Beziehung komponiert ist. Die Signatur sollte meiner Ansicht nach so aussehen:

Code: Alles auswählen

isComposed(string $relationName, GenericDomainObject $child, GenericDomainObject $father)
Was denkst du?
Ansicht korrekt, aber wieso nicht eine gemeinsame Methode verwenden?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: [GORM] isRelated?

Beitrag von dr.e. » 08.10.2010, 21:53:57

bringt doch nur die zahl der objekte die über eine beziehung verknüpft sind, das können aber auch andere objekte der gleichen beziehung sein oder?
Und wenn die Zahl > 0 ist, hast du eine Komposition. ;)
Ansicht korrekt, aber wieso nicht eine gemeinsame Methode verwenden?
Weil die Assoziation beidseitig auflösbar ist. Eine Komposition ist einseitig gerichtet. Würdest du beispielsweise $father und $child verwechseln, muss die Methode false liefern.
Viele Grüße,
Christian

Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [GORM] isRelated?

Beitrag von Screeze » 08.10.2010, 21:57:46

Und wenn die Zahl > 0 ist, hast du eine Komposition. ;)
ÄÄhm:

Obstkorb 1 ---> Apfel
Obstkorb 2 ---> Birne
Obstkorb 2 ---> Banane

Code: Alles auswählen

$mult = loadRelationMultiplicity( Birne,'obstkorb2frucht');
Is Birne jetzt mit Korb 1 oder Korb 2 verbunden??

Weil die Assoziation beidseitig auflösbar ist. Eine Komposition ist einseitig gerichtet. Würdest du beispielsweise $father und $child verwechseln, muss die Methode false liefern.
Es geht aber doch nur um die Frage, OB eine verbindung besteht ?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: [GORM] isRelated?

Beitrag von dr.e. » 08.10.2010, 23:46:27

Is Birne jetzt mit Korb 1 oder Korb 2 verbunden??
Du hast ja Recht, das ist keine gute Idee. :D
Es geht aber doch nur um die Frage, OB eine verbindung besteht ?
Nein. Es geht darum, ob eine Komposition besteht. Das ist eine gerichtete Beziehung und zwar eindeutig gerichtet. In deinem Beispiel: "Obstkorb 2" komponiert "Banane". Das bedeutet dass du folgende Ergebnisse bekommst:

Code: Alles auswählen

$basket = new GDO('Obstkorb');
$basket->setObjectId(2);

$banane = new GDO('Fruit');
$banane->setProperty('Type','Banane');

$orm->isComposed('basket2fruit',$banane,$basket) == true
$orm->isComposed('basket2fruit',$basket,$banane) == false
Viele Grüße,
Christian

Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [GORM] isRelated?

Beitrag von Screeze » 09.10.2010, 10:57:33

Hmm wegen mir brauchts das zwar nicht so ins detail, aber sinnvoll kanns schon sein. Hauptsache ich krieg die Info die ich brauche :D

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: [GORM] isRelated?

Beitrag von dr.e. » 09.10.2010, 12:01:03

Hallo Ralf,

ich habe die Methode in den Code eingebaut. Aktualisiere mal dein SVN lokal, dann sollte der GORM die neue Methode haben.
Viele Grüße,
Christian

Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [GORM] isRelated?

Beitrag von Screeze » 09.10.2010, 16:58:38

Perfekt, läuft.
kann man nach neue features verschieben würd ich sagen. :D

Danke!

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: [GORM] isRelated?

Beitrag von dr.e. » 09.10.2010, 17:25:24

Fein, dann kann der GORM wieder was neues! :)
Viele Grüße,
Christian

Gesperrt