Hey Felix,
Wenn ein Desktopprogramm "nur" seine Einstellungen abspeichert,
spielt es eher keine Rolle wie gut die Datei lesbar ist. XML oder
Registry tun's da sicher gleichermaßen. - Ich nenn mal als Beispiel
die GNOME-Registry - das Schlechteste aus beiden Welten *hihi*
Weil mein Script jedoch auf dem Webserver läuft, kommts auch
ein wenig auf Geschwindigkeit an. Das Script wird ja recht häufig
aufgerufen und muß jedesmal beim Start die Einstellungen lesen.
Von daher sind SQL-Tabelle und XML-Parser meiner Meinung nach
schon zu viel des Guten. PHP-Skript oder INI-Datei oder ein
serialize()-Blob nehmen sich IMO hingegen nicht viel.
Der Einwand mit der Fehlertoleranz ist natürlich gut und berechtigt.
Aber ich denke die Gefahr hält sich -zumindest bei mir- noch in
Grenzen.
Ich muss da eigentlich nur beim Ausschneiden aufpassen, denn die
eingefügten Werte sind recht simpel aufgebaut:
$cfg_line = '$'.$varname.' = "'.addslashes($value).'";';
// oder
$cfg_line = preg_replace("/^include.+?;/", "", $cfg_line);
$cfg_line = "include_once(\"$filename\");" . $cfg_line;
Bei $filename müßte ich zB nichtmal sonderlich aufpassen,
weil die mögliche Auswahl eher statisch ist, und dort schon
keine Sonderzeichen vorkommen können.
Wenn auch unwarscheinlich, so würde ein Syntax-Fehler aber die
selben Folgen haben wie ein vergessenes xmlentities() bei der
XML-Konfigurationsdatei. Der Unterschied mit PHP wäre daß /ich/
'nen Fehler evtl. schneller rauseditieren kann ;-)
Ich will mich damit auch nicht rausreden *g*, aber es ist ja
andererseits auch oft gewollt, daß ein Programm mit falschen
Einstellungen den Dienst verweigert.
Wenn Sicherheitseinstellungen, Passwörter oder dergleichen
fehlen, wärs zumindest besser. Und wenn //irgendetwas// fehlt,
läßt sich sowieso immer schlecht sagen was es war.
Danke & Beste Grüße!
mario