[1.13] IniConfigurationProvider::saveConfiguration()

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

[1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von MrNiceGuy » 09.03.2011, 10:24:46

Moin!

Ich weiß nicht, ob das nicht gewollt ist, aber mir ist gerade ein kleiner Fehler aufgefallen im Bezug auf den INI-Provider (andere habe ich noch nicht überprüft): Wenn ich einfach nur eine einfache Konfiguration ohne Sections speichern möchte, werden die Werte nicht übernommen:

Ziel:

Code: Alles auswählen

Var1 = "val1"
Var2 = "Val2"
Code:

Code: Alles auswählen

$oConfig = new IniConfiguration ();
$oConfig->setValue ('Var1', 'Val1');
$oConfig->setValue ('Var2', 'Val2');
$this->saveConfiguration ('namespace','config.ini',$oConfig);
Folge ist eine Leere ini-Datei. Ich gehe davon aus, dass das nicht unbedingt gewollt ist, denn die Möglichkeit wäre ja ansich gegeben auch Daten außerhalb einer Section auszulesen?!
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: [1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von dr.e. » 09.03.2011, 11:56:46

Hallo Lutz,

das Schema des Ini-Providers beherrscht nur Konfigurationen in Sektionen. Sofern du quasi keine brauchst, leg einfach eine "Standard"-Sektion an. Dieser Umstand ergibt sich zum einen aus dem Umstand, dass die Konfigurationen auch nur so gelesen werden, zum anderen daraus, dass das Schema zwischen den einzelnen Formaten einheitlich gehalten werden sollte. Es ist also kein Bug. :)
Viele Grüße,
Christian

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: [1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von MrNiceGuy » 09.03.2011, 21:06:50

Rein Theoretisch wäre es aber möglich auch ohne Section Daten aus der Konfiguration auszulesen, denn die Klasse IniConfiguration unterstützt es ja von Haus aus. Aber nun gut, ich arbeite dann halt mit einer Section. Wollte es nur ansprechen, falls es dochein Bug sei.

[close]
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: [1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von dr.e. » 10.03.2011, 00:09:21

Richtig, theoretisch/technisch ist das möglich. Das Problem bei der parse_ini()-Funktion ist nur, dass es keine Mischformen unterstützt. Wenn du Sektionen möchtest, gibts keine Variablen ohne und umgekehrt. Sektionen wollte ich, also habe ich hier beim Schreiben diese Form ebenso konsequent durchgesetzt, sonst kannst du zwar Direktiven schreiben, jedoch verschwinden diese beim Lesen. Das - finde ich - wäre noch blöder. :)
Viele Grüße,
Christian

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: [1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von MrNiceGuy » 10.03.2011, 07:57:23

Einspruch!

Nicht, dass ich jetzt darauf beharren will, diese Funktion integriert zu bekommen, aber dass parse_ini_file() keine "Mischform" unterstützt ist schlichtweg falsch:

Ini:

Code: Alles auswählen

Test1 = "Hallo"

[Sektion1]
Test2 = "Welt"
Script:

Code: Alles auswählen

<pre><?php

$aIni = parse_ini_file ('test.ini', TRUE);

var_dump ($aIni);
?></pre>
Ausgabe:

Code: Alles auswählen

array(2) {
  ["Test1"]=>
  string(5) "Hallo"
  ["Sektion1"]=>
  array(1) {
    ["Test2"]=>
    string(4) "Welt"
  }
}
Es sei denn ich habe dich falsch verstanden...
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: [1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von dr.e. » 10.03.2011, 23:50:21

Hallo Lutz,

das ist interessant. Die Doku gibt das so nicht her und ich hatte das bisher auch nicht so umgesetzt. :roll: Ich kann mich nur erinnern, dass das bei der Implementierung irgendwie nicht sauber funktioniert hat, weswegen ich das Schreiben entsprechend auf Sektionen begrenzt hatte. Hmm...

Grundsätzlich könnte man das unter diesen Umständen sogar einbauen. In diesem Zug sollten aber auch die anderen Formate diese Art beherrschen. Und genau bei letzterem sehe ich mit dem DB-Format etwas mehr Aufwand.
Viele Grüße,
Christian

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: [1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von MrNiceGuy » 11.03.2011, 07:43:20

Wie gesagt: Ich will das ja nicht erzwingen, wenn es zuviel Aufwand macht, ist es natürlich einfacher eine Sektion zu benennen. Ich wollte diese Behauptung nur nicht einfach im Raum stehen lassen :)

Fazit: Es ginge eben doch (mit INIs), aber aufwandtechnisch ist es wohl einfacher eine Sektion zu benennen :)
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: [1.13] IniConfigurationProvider::saveConfiguration()

Beitrag von dr.e. » 11.03.2011, 09:20:56

OK, dann belassen wir das Feature so.
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast