Gerald: Heimatverzeichnis der Scriptes, das eine PHP-Klasse aufruft?

Hallo,

ich habe viele Verzeichnisse, die immer wieder (auch gleichzeitig) eine bestimmt Klasse aufrufen, die in einem separaten Verzeichnis liegt.

Verzeichnis 1
--> script1.php
--> script2.php
--> config.ini
Verzeichnis 2
--> script1.php
--> script2.php
--> config.ini
Verzeichnis 3
--> script1.php
--> script2.php
--> config.ini
Verzeichnis 4
--> script1.php
--> script2.php
--> config.ini
Verzeichnis 5
--> script1.php
--> script2.php
--> config.ini
Klassenverzeichnis
--> klasse.php

Gibt es eine Möglichkeit, daß ich in der Klasse (klasse.php) je nach aufrufendem Script eine Variable aus der zugehörigen config.ini nutzen kann?

Gerald

  1. Gibt es eine Möglichkeit, daß ich in der Klasse (klasse.php) je nach aufrufendem Script eine Variable aus der zugehörigen config.ini nutzen kann?

    Klassen sollten sich benötigte Informationen nicht selbst holen, sondern bekommen. Z.B. könntest du benötigten Wert an den Konstuktor/die Funktion übergeben, etc. Sprich, lass das aufrufende Script den gewünschten Wert selbst auslesen.

    MfG
    bubble

    --
    If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
    1. Klassen sollten sich benötigte Informationen nicht selbst holen, sondern bekommen. Z.B. könntest du benötigten Wert an den Konstuktor/die Funktion übergeben, etc. Sprich, lass das aufrufende Script den gewünschten Wert selbst auslesen.

      Hi bubble,

      klar, super Idee.

      So habe ichs gemacht und es läuft prima.

      Danke, Gerald

  2. Tach!

    Gibt es eine Möglichkeit, daß ich in der Klasse (klasse.php) je nach aufrufendem Script eine Variable aus der zugehörigen config.ini nutzen kann?

    Alles was PHP zum System weiß, steht in $_SERVER, unter anderem auch der Name des aufgerufenen Scripts. Davon lässt sich mit Funktionen à la dirname() das Verzeichnis ermitteln. Zudem gibt es noch __FILE__, das nützt dir aber in klasse.php nichts mehr.

    Aber all das brauchst du gar nicht, wenn das aktuelle Verzeichnis (getcwd()) immer noch das des aufrufenden Scripts ist, denn dann kann auch klasse.php mit einfachem Dateinamenszugriff auf die config.ini greifen.

    dedlfix.

    1. Hi dedlfix,

      Alles was PHP zum System weiß, steht in $_SERVER, unter anderem auch der Name des aufgerufenen Scripts.

      Ich hätte aber den Namen des "Aufrufers" wissen müssen.

      Aber all das brauchst du gar nicht, wenn das aktuelle Verzeichnis (getcwd()) immer noch das des aufrufenden Scripts ist, denn dann kann auch klasse.php mit einfachem Dateinamenszugriff auf die config.ini greifen.

      Nein, das Verzeichniuss ist nicht mehr dasselbe.

      Mir gefiehl aber bubbles Lösung sehr gut.

      Dir auch danke,
      Gerald

      1. Tach!

        Alles was PHP zum System weiß, steht in $_SERVER, unter anderem auch der Name des aufgerufenen Scripts.
        Ich hätte aber den Namen des "Aufrufers" wissen müssen.

        Nein, nur den Key, unter dem das jeweils gestartete Script (script1/2.php) liegt, also SCRIPT_FILENAME zum Beispiel.

        Aber all das brauchst du gar nicht, wenn das aktuelle Verzeichnis (getcwd()) immer noch das des aufrufenden Scripts ist, denn dann kann auch klasse.php mit einfachem Dateinamenszugriff auf die config.ini greifen.

        Nein, das Verzeichniuss ist nicht mehr dasselbe.

        Das heißt, du hast es mit chdir() gewechselt? Oder hast du nur include relativerPfad aufgerufen? Dann ist das Arbeitsverzeichnis nicht gewechselt worden (zu überprüfen mit getcwd()).

        Mir gefiehl aber bubbles Lösung sehr gut.

        Ja, so erfüllt sie das "don't look for things"-Prinzip und hat keine versteckten Nebenwirkungen.

        dedlfix.