Ergebnis 1 bis 6 von 6

Thema: Übergabe von Objekten / Vererbung / OOP

  1. #1
    Meister(in)
    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Übergabe von Objekten / Vererbung / OOP

    Moin,
    ich bastel mir gerade ein kleines Grundgerüst welches ich für zukünftige Projekte verwenden will.

    Zum Aufbau:
    Ich habe folgende Module (Klassen):

    • Config
    • Database
    • Basic
    • Articles

    Meine init.php sieht wie folgt aus:
    (vorab: es geht um die beiden echos am Ende...)
    PHP-Code:
    include(MODULES_PATH."/basic/module/config.module.php");
    include(
    MODULES_PATH."/basic/module/database.module.php");
    include(
    MODULES_PATH."/basic/module/basic.module.php");

    $oConfig    = new Config();
    $oDatabase  = new Database($oConfig);
    $oBasic     = new Basic($oConfig,$oDatabase);

    include(
    MODULES_PATH."/articles/module/articles.module.php");
    $oArticles = new Articles;
    echo 
    $oBasic->config->valueOf['example'];
    echo 
    $oArticles->config->valueOf['example']; 
    Zunächst werden die drei Grundmodule eingebunden und die Objekte instanziert. Dabei wird $oConfig an Database und dann $oConfig und $oDatebase an Basic weitergegeben.

    Letztgenanntes Modul macht z.Z. noch nicht mehr als das:
    PHP-Code:
    class Basic {
        var 
    $config;
        var 
    $database;
        
        function 
    __construct($oConfig,$oDatabase) {
            
    $this->config $oConfig;
            
    $this->database $oDatabase;
        }

    Nun kommt das Articles Modul ins Spiel, welches von Basic abgeleitet wird.

    Kurze Info: In Config gibt es eine Methode die Werte aus einer Datei ausliest und in ein Array schreibt welches eine Eigenschaft von Config ist. Diese heißt valueOf.


    Nun zu den letzten beiden Zeilen der init.php:
    PHP-Code:
    echo $oBasic->config->valueOf['example'];
    echo 
    $oArticles->config->valueOf['example']; 
    Das erste funktioniert und gibt mir den Wert von example, aus der oben angesprochenen Config Datei, aus.
    Die zweite Zeile gibt weder den Wert noch eine Fehlermeldung aus.

    Und ich würde gerne wissen warum.

    mfG Markus
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Sinnloss
    Gast

    Standard AW: Übergabe von Objekten / Vererbung / OOP

    PHP-Code:
    $oArticles = new Articles
    PHP-Code:
    class Basic {
        var 
    $config;
        var 
    $database;
        
        function 
    __construct($oConfig,$oDatabase) { 
    in Articles steht vermutlich im __construct ein parent::__construct für den __construct von Basic. Woher nimmst du in Articles die erwarteten Parameter $oConfig,$oDatabase für den parent::__construct?

  3. #3
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Übergabe von Objekten / Vererbung / OOP

    Oh man... jo danke! Das ists natürlich. Beim Abeleiten wird der Konstruktor der Eltern Klasse nicht ausgeführt, richtig?
    An parent::__construct oder so hab ich gar nicht gedacht :/

    Werd ich morgen gleich checken, besten Dank für den Denkanstoß...
    und danke, dass du dir die Zeit genommen hast!
    Geändert von FaFoo (04.12.2008 um 22:43 Uhr)

  4. #4
    SinnlosS
    Gast

    Standard AW: Übergabe von Objekten / Vererbung / OOP

    Kein Problem, gerne.

    Wenn du die Instanz von Basic nicht zusätzlich zu der brauchst, die dann im __construct von Articles erstellt wird kannst du dir die ja auch sparen (kann natürlich sein, dass du beides brauchst, weiß ja nicht was du vorhast).
    Dann schreibst du halt einfach:
    PHP-Code:
    include(MODULES_PATH."/basic/module/config.module.php");
    include(
    MODULES_PATH."/basic/module/database.module.php");
    include(
    MODULES_PATH."/basic/module/basic.module.php");

    $oConfig    = new Config();
    $oDatabase  = new Database($oConfig);

    include(
    MODULES_PATH."/articles/module/articles.module.php");
    $oArticles = new Articles($oConfig,$oDatabase);

    echo 
    $oArticles->config->valueOf['example']; 
    und im __construct von Articles dann eben
    PHP-Code:
    parent::__construct($oConfig,$oDatabase); 

    Was mich aber wundert, dass dir dein Code keine Meldung ausspuckt. Hast du error_reporting hochgedreht? Eigentlich müßte ein notice kommen, vermutlich sowas wie Trying to get property of non-object in ...

  5. #5
    SinnlosS
    Gast

    Standard AW: Übergabe von Objekten / Vererbung / OOP

    Achso, wenn du in Database sowieso die ganze Instanz von Config benötigst und in Basic die kompletten Instanzen von Config und Database könntest du da auch einfach die Eltern-Tochterklassen Struktur weiterführen
    -->
    class Config
    class Database extends Config
    class Basic extends Database
    class Articles extends Basic

    Dann brauchst du in deiner init.php nur noch Articles instanzieren.

    Naja, aber das ist auch wieder ne Frage der weiteren Verwendung der Klassen.

  6. #6
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Übergabe von Objekten / Vererbung / OOP

    Ja mein Plan war aber, dass ich jedes weitere Modul nur noch von Basic ableiten muss und dann über
    PHP-Code:
    $this->config
    $this
    ->database
    $this
    ->basic 
    auf die entsprechenden Objekte zugreifen kann... aber wenn ich so drüber nachdenke ist das für meine Zwecke gar nicht nötig und überhaupt nicht zweckdienlich... :P

    mfG Markus

Ähnliche Themen

  1. Benutzerrechte fürs Hinzufügen von Objekten
    Von alexbaier im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 2
    Letzter Beitrag: 21.12.2006, 16:45
  2. Abstand zwischen Objekten
    Von Tobiaz im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 26.01.2006, 18:43
  3. ein-/ und ausblende von Objekten! Komme nicht weiter
    Von Harry H im Forum Script-Archiv
    Antworten: 2
    Letzter Beitrag: 16.09.2005, 13:24
  4. x- y- Positionen von Objekten festlegen??
    Von Neuling im Forum HTML & CSS Forum
    Antworten: 8
    Letzter Beitrag: 23.08.2005, 19:44
  5. CSS-Vererbung aufheben?
    Von Torty im Forum HTML & CSS Forum
    Antworten: 11
    Letzter Beitrag: 01.08.2005, 02:23

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •