Klassen verfügbar machen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Klassen verfügbar machen

    Hallo Liebe Community,

    ich habe folgendes Problem:

    Und zwar, ich habe eine Klasse RequestHandler, über diese Klasse werden die richtigen Klassen geladen, wenn eine Klasse aufgerufen wird.
    Nehmen wir an, der user tippt "index.php?form=Login" in die URL-Leiste des Browsers ein. Nun wird die Klasse "Loginform" geladen. Das ist alles kein Problem, funktioniert alles.
    Weiter. In der Klasse Loginform brauche ich nun meine Templateengine Smarty, sowie meine Datenbank Klasse und eine weitere Klasse. Diese Klassen benötige ich bei jedem Aufruf,
    d.h. ich benötige diese Klassen in jeder anderen Klasse welche über die URL aufgerufen werden kann, sei es "index.php?form=Login" oder"index.php?action=Logout" oder"index.php?page=Index".
    Wie kann ich nun diese Klassen (Smarty, Datenbank und die andere) den anderen Klassen bereitstellen?

    Ich würde mich echt freuen, wenn mir jemand von euch helfen könnte. Ich steh echt auf dem Schlauch und komm einfach nicht weiter.

    Mit freundlicehn Grüßen
    Philipp
  • Es gibt eigentlich zwei Herangehensweise an das Vorgehen

    a) Du verwendest einfach alle Klassen die du benötigst.
    Recherchier mal nach [google]php autoload[/google] - damit lädst du die Klassen dann aus unterschiedlichen Dateien automatisch nach.

    b) das zweite Vorgehen ist auch ganz logisch. Abhängigkeiten muss man angeben. Und somit musst du aus deiner Loginform Klasse auch die Datenbank und Smarty mit require_once einbinden.

    Ich bevorzuge eigentlich immer die Variante b, da man nur einen Autoloader haben kann und ich mit Pluginsystemen öfter mal Probleme hatte.
    Wenn du dich dafür entscheidest, informier dich nochmal zum "base directory" (oder hier "join point")

    --> webmasterpro.de/coding/article…s-ueber-bibliotheken.html

    Quellcode

    1. <?php
    2. /**
    3. * Setzt das aktuelle Verzeichnis in welchem die Konstante festgelegt wird als Root.
    4. * Liegt dein Script in einem Unterordner erster Ebene, dann musst du
    5. * dirname(dirname(__FILE__)) festlegen usw.
    6. */
    7. if (!defined('ROOT')) {
    8. define('ROOT', dirname(__FILE__) . '/');
    9. }
    10. /**
    11. * Der Aufruf von require_once verursacht einen E_FATAL Fehler, sollte die Datei nicht
    12. * vorhanden oder nicht lesbar sein. Dieser Fehler führt direkt zum Abbruch des Skripts.
    13. */
    14. require_once ROOT . 'lib/file.php';
    15. ?>
    Alles anzeigen