Pfade absolut oder nicht?

ok.... angenommen:
Verzeichnisstruktur:
/includes/
/admin/
index.php

ich nehme an du hast in einer datei in includes stehen:
PHP:
$MS_GLOBAL['PATH']['INC'] = './includes';

in der index.php ist dann $MS_GLOBAL['PATH']['INC'] vorhanden, was wiederum bedeutet das du datein mit dieser PFandgaben includen kannst. zb:
PHP:
require($MS_GLOBAL['PATH']['INC'].'class.php');

Aber: was wenn du im Ordner admin die admin - php- files liegen hast und die benötigen auch Dateien aus den includes Verzeichnis. Da kannst du ja dann in /admin/bla.php nicht schreiben:
PHP:
require($MS_GLOBAL['PATH']['INC'].'class.php');
denn das würde /admin/includes/ laden.

Verstanden :D
 
Nein, also es sieht so aus:

Ich habe eine Datei, die in root/inc/ liegt. Diese Datei heisst init.php
In dieser Datei sind meine Globalen Variablen:

PHP:
$MS_GLOBAL['PATH']['LIB'] = $_SERVER['DOCUMNET_ROOT'].'/lib/';
$MS_GLOBAL['PATH']['INC'] = $_SERVER['DOCUMNET_ROOT'].'/inc/';

Diese Datei binde ich jetzt in mein Script (bla.php) ein:

PHP:
require($_SERVER['DOCUMENT_ROOT'].'/inc/init.php');

Das ist die einzige Datei, bei der ich wirklich den Pfad angeben muss. Diese Zeile würde in jedem Script stehen (z.B. in bla.php). Wenn ich jetzt ein weiteres Script einbinden will, mache ich das so:

PHP:
require($MS_GLOBAL['PATH']['LIB'].'class.php');

In dem Script bla.php steht jetzt also folgendes:

PHP:
require($_SERVER['DOCUMENT_ROOT'].'/inc/init.php');
require($MS_GLOBAL['PATH']['LIB'].'class.php');

Das Script bla.php kann jetzt an jede beliebige Stelle des Servers kopiert werden und es läuft trotzdem. Wenn sich der lib-Ordner verschiebt muss ich die Datei bla.php auch nicht anfasse. Ich muss nur in der init.php ein einziges mal den Pfad ändern und das Script läuft wieder, egal wo es sich auf dem Server befindet.
 
Zuletzt bearbeitet:
Zurück