Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Dateien und Klassen aus übergeordnetem Verzeichnis einbinden

    webald

    • modified Team
    • Beiträge: 2.791
    Ich hätte mal eine Frage zum Best-Practice beim Einbinden von Dateien.

    Die Datei configure.php liegt ja bekanntermaßen in ../includes/configure.php bzw. ../admin/includes/configure.php

    ich arbeite derzeit an einer Rest-Api (../api/rest/service.php). Nun muss ich dort u. a. auch die configure.php einbinden. Was ist da die "richtige" Lösung?

    require $_SERVER['DOCUMENT_ROOT'] . '/includes/configure.php';
    oder
    require  '../includes/configure.php';
    oder
    require  'http://meinWebserver//includes/configure.php';
    oder ...

    Linkback: https://www.modified-shop.org/forum/index.php?topic=31836.0
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    Guenter59

    • Viel Schreiber
    • Beiträge: 1.484
    Re: Dateien und Klassen aus übergeordnetem Verzeichnis einbinden
    Antwort #1 am: 23. Dezember 2014, 11:42:27
    Hi
    Wohl eher so
    include ('includes/configure.php'); ( oder require )

    meistens wird aber wohl die
    include ('includes/application_top.php');
    eingebunden.
    Die beinhaltet auch die configure.php

    GMS

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Dateien und Klassen aus übergeordnetem Verzeichnis einbinden
    Antwort #2 am: 23. Dezember 2014, 13:24:47
    Mir ging es jetzt nicht um die korrekte Schreibweise, sondern darum auf Dateien aus einem übergeordneten oder parallelen Verzeichnis einzubinden.

    Die vollständige Adresse der configure.php lautet etwa:
    http://meinWebserver/includes/configure.php

    Die API liegt in http://meinWebserver/api/rest/service.php

    mit include ('includes/configure.php') kann ich die http://meinWebserver/includes/configure.php nicht in http://meinWebserver/api/rest/service.php einbinden, denn diese müßte dann in http://meinWebserver/api/rest/includes/configure.php liegen.

    Im Prinzip ist es egal ob configure.php oder application_top.php eingebunden werden. Die Problematik ist die gleiche, da beide eh im selben Verzeichnis liegen. In der application_top werden aber Sachen geladen, die ich für einen REST-Webservice nicht brauche.

    timopaul

    • modified Team
    • Beiträge: 360
    • Geschlecht:
    Re: Dateien und Klassen aus übergeordnetem Verzeichnis einbinden
    Antwort #3 am: 23. Dezember 2014, 14:02:10
    Ahoi,

    require  '../includes/configure.php';

    würde ich bevorzugen.

    require $_SERVER['DOCUMENT_ROOT'] . '/includes/configure.php';

    macht Probleme wenn der Shop in einem Unterverzeichnis der Domain liegt, soll ja schon vorgekommen sein.

    require  'http://meinWebserver//includes/configure.php';

    ist nicht sehr elegant, was wenn der Shop umzieht?

    Besten Gruß,
    Timo

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Dateien und Klassen aus übergeordnetem Verzeichnis einbinden
    Antwort #4 am: 23. Dezember 2014, 14:32:59
    Code: PHP  [Auswählen]
    $config_path = realpath(dirname(__FILE__) . '/../../') . '/';

    require($config_path.'includes/configure.php');

    war im ersten Moment die Lösung meiner Wahl, aber auf Windows verursacht das Fehler:

    D:\apache\xampp181\htdocs\modified106r4642sp2\api/includes/configure.php ist halt Müll.

    Guenter59

    • Viel Schreiber
    • Beiträge: 1.484
    Re: Dateien und Klassen aus übergeordnetem Verzeichnis einbinden
    Antwort #5 am: 23. Dezember 2014, 14:52:05
    Hi
    dafür müßte eigentlich der PATH_SEPARATOR ( oder DIRECTORY_SEPARATOR ) genommen werden.
    Aber modified funktioniert doch auch sonst auf Windows-Servern oder? :nixweiss:
    http://php.net/manual/de/dir.constants.php

    GMS

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Dateien und Klassen aus übergeordnetem Verzeichnis einbinden
    Antwort #6 am: 23. Dezember 2014, 21:38:50
    Mit chdir() geht's auf jeden Fall, es sei denn du mußt noch mehr Dateien include-n oder aufrufen.
    Vorher mal testweise getcwd() ausgeben lassen.

    Gruß,
    noRiddle
    10 Antworten
    4807 Aufrufe
    13. April 2011, 09:10:34 von Tomcraft
    2 Antworten
    2624 Aufrufe
    29. November 2013, 16:06:05 von xxtita
    3 Antworten
    2423 Aufrufe
    18. Januar 2013, 23:16:26 von noRiddle (revilonetz)
               
    anything