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.