Jo: Vernünftig inkludieren

Beitrag lesen

Eine Frage zu sinnvoller Inkludierungstechnik.

/ (doc_root)

/inc

/us1
/us2
/us2/inc

skript.php in us2 inkludiert aus /us2/inc und aus /inc.

Eine Möglichkeit ist include ($_SERVER['DOCUMENT_ROOT'] . "/us2/inc/incskrpt.php") und include ($_SERVER['DOCUMENT_ROOT'] . "/inc/incskrpt.php").

incskrpt.php in /inc inkludiert wiederum incskrpt1.php und incskrpt2.php aus /inc:

include($_SERVER['DOCUMENT_ROOT'] . "inc/incskrpt1.php") und
include($_SERVER['DOCUMENT_ROOT'] . "inc/incskrpt2.php")

chdir ist keine gute Alternative. In Betracht käme noch __FILE__.

Jetzt kommt das Problem:

Auf dem Entwicklungsserver weicht die Struktur ab:

/
/ws1
/ws2/

/ws2/inc
/ws2/us1
/ws2/us2
/ws2/us2/inc

Es ist eine Ebene hinzugekommen. Die korrekten Includes müßten das ergänzen, z. B.:

include($_SERVER['DOCUMENT_ROOT'] . "/ws2/inc/incskrpt.php")

Das ergibt ein heilloses Durcheinander. Meine Überlegung, wie man das "synchronisieren" kann: Eine Konstante DEVELOPMENT zeigt an, ob auch Produktions- oder Entwicklungsserver gearbeitet wird:

define(DEVELOPMENT, true)

if (DEVELOPMENT == true)
  include($_SERVER['DOCUMENT_ROOT'] . "/ws2/inc/incskrpt.php");
if (DEVELOPMENT == false)
  include($_SERVER['DOCUMENT_ROOT'] . "/inc/incskrpt.php")

Ist meine Überlegung sinnvoll? Gibt es noch Alternativen, die ich bisher übersehen habe? In Betracht käme noch außerdem, wie schon angedeutet, mit absoluten Pfaden aus __FILE__ zu inkludieren.