Pryos.org: Automatisieren mit __autoload

Beitrag lesen

Problem / Frage:
Ich include mit Hilfe von __autoload eine Klasse incl. einer Konfigurationsdatei und mache die Config-Varibalen Global.

Wenn ich beim oder nach dem Erstellen der Klasse (im globalen Script) die Config-Variablen verwenden möchte, fehlen Sie.

Da das Objekt im __autoload noch nicht existiert und ich auch nicht weiß wie es heißen soll kann ich die Variablen da noch nicht in das Objekt schreiben.

Fällt jemanden hier noch eine automatisierbare Lösung ein, wie ich an die Variablen komme?

Mein Ziel ist es, eine Art Freamwork (mit eigenen und fremden Klassen) zu entwickeln, welches ich nur einmal in einem Order vorhanden ist (ähnlich wie Typo3) und dann unterschiedlichst genutzt werden kann.

Ist:
Ich besitze ein globalen Ordner "lib", welcher meine PHP-Klassen enthält.
Sowie einen Domain-Ordner "conf", welcher die Configurationsdateien der aktuellen Domain enthält.

Zu guter letzt befindet sich in einer Standart-Datei eine Autoload Funktion:

  
function __autoload($class_name) {  
	Global $path_lib, $path_cnf;	# Lib / Config Pfad holen  
	if (file_exists($path_lib.$class_name.".php")) {	# Exisitert die Lib?  
		$globalVars	= array();  
		$globalVars = get_defined_vars();				# Vorhandene Globale Variablen einlesen  
		  
		require_once $path_lib.$class_name.".php";		# Lib includen  
		if (file_exists($path_cnf.$class_name.".php")) require_once $path_cnf.$class_name.".php";	# Wenn vorhanden Config Datei includen  
		$vars = array_diff_key(get_defined_vars(), $globalVars);	# Neue Variablen identifizieren  
		foreach($vars as $key => $var) $GLOBALS[$key] = $var;		# Neue Variablen wegschreiben  
	}  
}

Beispiel-Versuch:
Ich lade die eingestellte Datenbank. In diesem Fall "lib/Mysql.php":

  
switch (strtolower($db_type)) {  
case "notes": $db = new LotusNotes(); break;  
case "mysql":  
default:  
	$db = new MySql();  
	$db->connect($db_host, $db_user, $db_pw);  
	$sql = "SET CHARACTER SET utf8";  
	$db->query("$sql");  
	$db->select_db($db_database);  
}

Diese enthält eine Configurationsdatei "cnf/MySql.php":

  
$db_host	= "127.0.0.1";  
$db_database	= "***";  
$db_user 	= "***";  
$db_pw  	= "***";