Dynamisches Ansprechen von Konstanten

Igäl

Erfahrenes Mitglied
Guten Morgen liebe Leute

Ich eck mal wieder an. Und zwar möchte ich eine Liste von vorhandenen Modulen ausgeben, die in einer Datei namens config.ini gespeichert sind. Das funktioniert soweit auch ganz gut. Da ich mein Frontend jedoch so gestalten möchte, dass man leicht eine weitere Sprache implementieren kann, arbeite ich mit einem Konstantenfile, welches für jede Ausgabe eine Konstante enthält. Bei einer neuen Sprache bräuchte ich dann lediglich ein neues Konstantenfile in der entsprechenden Übersetzung.

Zu meinem Problem:
Im Konstantenfile habe ich folgende Einträge:
PHP:
define("MODULE_CONTACT", "Anmeldung");
define("MODULE_GALLERY", "Fotos");

Das Array das aus der config.ini kommt, sieht folgendermassen aus:

Code:
Array ( [contact] => 0 [gallery] => 0 )

Schlüssel ist der Name des Modules, die Zahl dahinter (0|1) definiert ob es aktiviert ist oder nicht.

Nun generiere ich ein Ausgabearray mit den Feldern ModuleName, ModuleDescription, ModuleStatus. Im Modulnamen soll bei Ausgabe der Inhalt der Konstante MODULE_GALLERY stehen. Wie schaffe ich das, dass ich die Konstante in Kombination mit "MODULE_" und dem Feldschlüssel im Array ansprechen kann?

Folgender Versuch schlägt fehl:
PHP:
	private function get_module_data()	{
		$module_data = Array();
		$mod_cnt = 0;
		$ini = HandleIni::readIni(true);

		//print_r($ini['modules']);

		foreach($ini['modules'] AS $mod => $status)	{
			$module_data[$mod_cnt]['ModuleName'] = MODULE_.strtoupper($mod);
			
			$mod_cnt++;
		}

		return $module_data;
	}

Der langen Rede kurzer Sinn --> Ich brauch sowas in der Art von folgendem Codeabschnitt. Funktioniert nur leider nicht, aber konzeptionel wärs das:

PHP:
define ("KONS_TANTE","hallo");
$x = "TANTE";
echo KONS_$x;

Danke für jeden Tip

Gruss
De Igäl
 
Zuletzt bearbeitet:
Zurück