Webstatt.org - Community seit 2006 - 2012 (2024?)

Objekte greifen aufeinander zu

Avatar user-168
11.07.2007 19:25

Da ich derzeit viel beschäftigt bin, beschränke ich derzeit meine PHP-Tätigkeit auf das Überdenken meiner Objekte, die ich bereits geschrieben habe.

Bisher habe ich Referenzen benutzt, wenn ich Objekte in Objekten generiert habe und die Unterobjekte auf die Oberobjekte zugreifen sollten.


<?php

class main {
var $objekt;

function __construct(){
echo 'main<br />';
$this->objekt = new sub;
}
function bla(){
echo 'zugriff von sub klappt';
}
}

class sub {
function __construct(){
echo 'sub<br />';
}
function mainobjekt (){
// Wie machen?
}
}

$test = new main;

?>


Ich habe im echten Script mehrere "Subobjekte" und die sollen bequem aufeinander zugreifen können. Wie würdet ihr das lösen? (Steh vielleicht grad aufm Schlauch, aber mir fällt nichts besseres ein, als jedes Subobjekt auf das Mainobjekt zurück zu referenzieren und dann wieder das passende Subobjekt anzusprechen...

Kreative Ideen? Fettes Grinsen

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
user-303
11.07.2007 19:42

also ich hab da immer ne globale klasse, die alle *wichtigen* objecte kennt.

siehe: Klassen Manager

user-152
11.07.2007 19:55

Wie würdet ihr das lösen?

Vererbung ?

Avatar user-287
11.07.2007 20:04

Original von user-152
Wie würdet ihr das lösen?

Vererbung ?


Und wie willste dann von der Mutterklasse auf die Tochterklasse zugreifen?

user-152
11.07.2007 20:24

Achsoooooo, ... ne mein erster Gedanke war etwas wie:
class main extends sub { ....

Avatar user-168
12.07.2007 15:29


<?php
$db = F::GetDb();
?>


Aber greift er dann wirklich auf die Mainclass zu, oder auf irgendeine Funktion, die in F abgelegt ist? Weil es sollte natürlich schon so sein, dass er auf eine gezielte Methode eines einzelnen Objekts zugreift... Das Objekt soll ja zwischen den Zugriffen auch Daten merken und später weiterverwenden können.

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-194
12.07.2007 18:18

Ist das Objekt, auf das du zugreifst, in der Anwendung einmalig? -> Singleton/Object Registry (ich bevorzuge letzteres). Ansonsten würd ich die Objekte direkt übergeben, nicht das ganze Main-Objekt. Das wird sonst sehr spannend für den GC und testbar ist das ganze auch nicht wirklich.