Alle Variablen in Funktion global schalten?

breytex

Mitglied
Hallo zusammen.
Habe ein kleines Problem und würde mich über Hilfe freuen.

Ich baue mein CMS momentan dahingehend um, dass alle Hauptdateien im Hauptverzeichnis, und die Verzeichnisse der Kunden in dem Hauptverz. liegen.
(Früher hatte jeder Kunde eine eigene Installation des CMS.)

Um aber trotzdem noch kundenindividuelle Module beibehalten zu können, habe ich folgende Funktion:
PHP:
function inc($inc,$art="inc")
{
	foreach($GLOBALS as $gl_x => $x_value){
        global ${$gl_x};
    }
	if($art=="inc"){
		if(file_exists($inc))
			include_once($inc);
		else include_once("../cms-stamm/".$inc);
	}elseif($art=="req"){
		if(file_exists($inc))
			require_once($inc);
		else require_once("../cms-stamm/".$inc);

		
	}else die("Falscher Parameter für Funktion 'inc'");
	
	
}

Ist denke ich klar, was diese Funktion macht.
Existiert ein individualmodul für den Kunden, wird dieses includet, wenn nicht, wird das aus dem Hauptstamm des CMS genommen.

Mein problem ist nur, dass die variablen aus den includeten Dateien nicht global sind, daher nicht im weiteren Code verwendet werden können.

Gibt es eine Möglichkeit, wie ich nicht jede Variable einzeln global schalten muss ?
(php globals sind nen no-go.)

Oder hat jemand ne andere Idee für meine Funktion?
lG
Fabian
 
Das halbe CMS mit globalen Variablen zu füttern halte ich für äußerst fehleranfällig, mal ganz abgesehen von der Sicherheit.

Schau dir mal was zum Thema "Objektorientierte Programmierung" an, wenngleich du dadurch wohl dein CMS neu schreiben müsstest.
Im Nachhinein wirst du jedoch froh sein, lieber früh als spät damit angefangen zu haben.
 
Hi,

warum machst Du die includes in der Funktion? Lass die Funktion nur den Pfad zur einzubindenden Datei zurückgeben und mach Deine includes im Hauptskript.

LG
 
Zurück