Toy: Objekte verschachteln

Hallo zusammen,

wie ruft man aus einer bestehenden Klasse ein fremde Klasse auf ?

Ich habe ein paar Einzellne Klassen die jeweils Ihre Teilberreiche erledigen, Methoden bereitstellen und eine Hauptklasse die dem  tatsächlichen Programmcode endspricht.
Die Hauptklasse nutzt Funktionen die in den Unterklassen stecken, nun frage ich mich wie man Sinnvoll aus der Hauptklasse auf die Unterklassen zugreift ?

entweder:

CLASS::METHODE();

oder ist es richtig in der Hauptklasse jeweils Objekte "$obj = new UnderClass;" von den Unterklassen zu erzeugen und dann wie gewohnt über:

$obj->Methode();

zuzugreifen ?

Oder gibt es vieleicht sowas wie "Mehrfach EXTENDS" ?

class A extends B,C,D,E {

}

das wär mal genial ;-)

Wäre euch Dankbar wenn Ihr mir dort ein wenig auf die Sprünge helfen könntet ...

Viele Grüße,

Toy

  1. Hello,

    schau Dir mal http://de.php.net/manual/de/ref.classobj.php an.

    Und achte darauf, dass es PHP5 erst interessant wird, was die OOP betrifft.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo Tom,

      schau Dir mal http://de.php.net/manual/de/ref.classobj.php an.

      Reingeschaut, betrifft aber nicht die Technik die ich verwenden möchte.
      In allen Beipielen die ich bisher gefunden habe komunizieren immer Functionen die nicht OOP sind mit den Klassen, aber in meinem Beipiel gibt es die freien Funktionen nicht, sondern eine Klasse mit den Steuerungsfunctionen.

      Und genau in dieser brauche ich wieder neue Objekte, von den ganzen anderen Klassen, ich habe das ausprobiert mit "new" klappt alles wunderbar, aber leider finde ich keine Infos dazu wie weit die in der Klasse erzeugten Objekte nach aussen hin gültig sind und ob das überhaupt sinnvoll ist.

      Den Artikel KlassNEsting habe ich mir schonmal durchgelesen, aber auch dort wird wieder über eine Extended Klasse berichtet, aber nicht über Objeke in Objekten "quasie" ;-)

      Danke für Eure Hilfe und Viele Grüße,

      Toy

  2. Hi,

    moeglicherweise hilft Dir dieser Artikel ueber "Class Nesting" http://www.devmag.net/webprog/php_class_nesting.htm

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
  3. wie ruft man aus einer bestehenden Klasse ein fremde Klasse auf ?

    entweder als statische methode: class:methode();
    oder als instanzierte klasse: $obj->methode();

    Ich habe ein paar Einzellne Klassen die jeweils Ihre Teilberreiche erledigen, Methoden bereitstellen und eine Hauptklasse die dem  tatsächlichen Programmcode endspricht.
    Die Hauptklasse nutzt Funktionen die in den Unterklassen stecken,

    dann muß die hauptklasse die unterklasse erweitern: hauptklasse extends unterklasse

    aber: was willst du? sollen deine einzelnen klassen eine 'veredelung' einer klasse bewirken? dann extend!

    nun frage ich mich wie man Sinnvoll aus der Hauptklasse auf die Unterklassen zugreift ?

    entweder:

    CLASS::METHODE();

    geht nur mit der statischen syntax da es $this::methode(); nicht gibt:
    direkt über mehrere extends: class:methode();
    als direkter extend: parent::methode();

    oder ist es richtig in der Hauptklasse jeweils Objekte "$obj = new UnderClass;" von den Unterklassen zu erzeugen und dann wie gewohnt über:

    $obj->Methode();

    zuzugreifen ?

    das wäre eine neue instanz, welche mit this nichts zu tun hat.
    natürlich kann eine klassenvariable auch ein anderes objekt sein:
    $this->objekt = new objekt();
    so mache ich das, da ich meine daten als baumstruktur anlege.

    was soll das?

    Oder gibt es vieleicht sowas wie "Mehrfach EXTENDS" ?
    class A extends B,C,D,E {}

    überdenke mal was du willst. wenn du teilbereiche haben willst, solltest du mal über eine baumstruktur nachdenken.
    beispiel: rechnung und rechnungspositionen (1:n)
    klassen: rechnung und position

  4. Hello,

    nochmal mein weiterer Linktipp: http://www.php.net/zend-engine-2.php

    Irgendwie verschwinden hier heute dauernd Postings, obwohl auf dem Screen das Response-Doc erscheint, dass der beitrag nun im Forum lesbar wäre. Ist mir jetzt schon viermal passiert. Am Anfang dachte ich ja, dass ich nur schief geguckt habe.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau