phpbar.de logo

Mailinglisten-Archive

AW: [php] require_once() - Unterschiedliche Pfadangaben zwischenPHP4.2.3 und PHP4.3.2???

AW: [php] require_once() - Unterschiedliche Pfadangaben zwischenPHP4.2.3 und PHP4.3.2???

Andreas Müller php at universalware.de
Don Aug 14 11:51:48 CEST 2003


Hallo Carsten,
warum das genau bei dir jetzt nicht geht zwischen 2 Maschinen kann ich zwar
nicht beantworten aber ich möchte in dem Zusammenhang auf ein generelles
Problem hinweisen: verschachtelte Require/Include

Da der aktuelle Pfad beim include (require ist ja auch nix anderes) immer
der des aufgerufenen Scriptes ist wird es ab dem Zeitpunkt spaßig wo man
versucht includes über verzeichnise hinweg zu verwenden. Erschwerend kommt
hinzu das man sich nicht immer auf die Document-Root verlassen kann. Der
Pfad von eigentlichen Script nützt einem bei Verzeichnisstrukturen und
Includeabhängigkeiten da auch nicht weiter weil ein include kennt seinen
Platz, aber nicht den Platz von dem es verwendet wird.
Die Document-Root zeigt z.B. bei HostEurope "Alias-Domains" auf das
Hauptdomain Verzeichnis obwohl die Alias-Domain ihre "logische" Root in
einem Verzeichnis hat.

Daher bin ich zu übergegangen in allen Scripts als 1. Zeile einen String mit
dem relativen Pfad zur richtigen Document-Root zu setzen z.B.

DEFINE('MY_ROOT','../../');


überall wo ich nun etwas include o.ä.

include(MY_ROOT.'inc/meinfile.inc.php');

Das geht immer und ich muss mir nie wieder gedanken machen wo ich bin - wenn
ich die 1. Zeile pro Script pflege. Seit dem läuft bei mir alles in jeder
Art von Verzeichniskonfiguration weil mir meine Umgebung schlicht egal ist
und ich intern alles relativ abwickel.

Gruß,
Andreas


php::bar PHP Wiki   -   Listenarchive