Konfiguration: Erlaubte Zeichen in den .ini

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Tostan
Beiträge: 7
Registriert: 22.06.2009, 10:34:51

Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von Tostan » 22.06.2009, 10:51:59

Hallo,

In der Dokumentation zur Konfiguration vermisse ich eine Angabe des erlaubten Zeichenvorrates (bzw. verbotener Zeichen) in den .ini-Dateien.
Zum Beispiel: Key = '{foo}' bzw. Key='[bar]' führen zu Fehlern.
Hintergrund: Ich möchte in der Konfiguration Variablen einbauen, die später ersetzt werden. Diese wollte ich eigendlich mit {} kennzeichnen...
Kann mir da evtl. jemand weiterhelfen?

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

Re: Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von dr.e. » 22.06.2009, 11:13:39

Hallo Tostan,

herzlich willkommen im APF-Forum! :geek:
In der Dokumentation zur Konfiguration vermisse ich eine Angabe des erlaubten Zeichenvorrates (bzw. verbotener Zeichen) in den .ini-Dateien.
Zum Beispiel: Key = '{foo}' bzw. Key='[bar]' führen zu Fehlern.
An sich sollte das nicht der Fall sein. Die ini-Datei wird mit parse_ini_file() ausgelesen. Diese sollte die von dir verwendete Syntax auf jeden Fall verstehen. Wie du unter http://adventurephpfra.svn.sourceforge. ... iew=markup sehen kannst (ab Zeile 328), werden Zeichen wie "[" oder "]" bzw. "{" oder "}" nicht speziell behandelt.

Welcher Fehler tritt denn bei dir auf? Wird der Text nicht ersetzt oder schmeißt dir eine APF-Komponente einen Fehler?
Hintergrund: Ich möchte in der Konfiguration Variablen einbauen, die später ersetzt werden. Diese wollte ich eigendlich mit {} kennzeichnen...
Diesen Ansatz finde ich sehr schön. Vielleicht könnte man diese Funktion auch in einen Tag oder eine Klasse integrieren, die wiederverwendbar ist.

Viele Grüße,
Christian
Viele Grüße,
Christian

Tostan
Beiträge: 7
Registriert: 22.06.2009, 10:34:51

Re: Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von Tostan » 22.06.2009, 15:41:19

Hallo,

Code: Alles auswählen

[config]
value1  = '{foo}'
führt zu:

Code: Alles auswählen

Error-ID:  	efdfd27ef6f1e89cd5fbb2c929021fe6
Message: 	Error parsing C:/xampp/htdocs/apps/config/sites/testwebsite/sites/testwebsite/DEFAULT_test.ini on line 2 
Number: 	2

Code: Alles auswählen

[config]
value8  = '[foo]'
value10 = 'foo'
wird eingelesen, bringt aber bei

Code: Alles auswählen

        $Config = &$this->__getConfiguration('sites::testwebsite','test');
        echo printObject($Config->getConfiguration());
folgende Ausgabe:

Code: Alles auswählen

Output of printObject():
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Array
(
    [config] => Array
        (
            [value8] => '
        )

    [foo] => Array
        (
            [value10] => 'foo'
        )
)
also auch nicht ganz das, was ich will ....
... ich schreibe grad eine Klasse, welche ein Menü aus einer ini baut ... die links stehen auch in der .ini, und da wäre es halt ganz praktisch, URL-Parameter dynamisch ersetzen zu lassen, so etwa in der form:

Code: Alles auswählen

[entry.entry01]
...
link.1.param = 'user'
link.1.value = '{UID}'
...
Ich schreibe es natürlich wiederverwertbar, evtl. wäre es ja auch für andere interessant, nur weiss ich nicht, ob ichs veröffentlichen soll. Es ist mein erster Versuch, meine OOPphobie zu überwinden ;)
Zuletzt geändert von Tostan am 22.06.2009, 16:48:40, insgesamt 1-mal geändert.

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

Re: Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von dr.e. » 22.06.2009, 16:47:21

Hallo Tostan,

hört sich nach einem Bug an. Werde das mit deinen Beispielen heute Abend nachvollziehen und mich dann hier melden.

Viele Grüße,
Christian
Viele Grüße,
Christian

Tostan
Beiträge: 7
Registriert: 22.06.2009, 10:34:51

Re: Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von Tostan » 22.06.2009, 18:32:41

Hallo,

sorry, mein Fehler, Ursache gefunden .... die doku von parse_ini_file() sagts nochmal deutlich ...

Code: Alles auswählen

:%s/'/"/g
hat geholfen, doppelte Anführungszeichen sind nötig, einfache helfen nichts.

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

Re: Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von dr.e. » 22.06.2009, 22:29:09

Hallo Toskan,

richtig. Habe das Verhalten nochmal analysiert und an dieser Stelle müssen wirklich >>"<< statt >>'<< verwendet werden, da die Funktion parse_ini_file() sonst nichts sinnvolles zurückgibt. :) Solltest du sonst noch Fragen haben, dann immer her damit!

Viele Grüße,
Christian
Viele Grüße,
Christian

Tostan
Beiträge: 7
Registriert: 22.06.2009, 10:34:51

Re: Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von Tostan » 23.06.2009, 16:24:24

dr.e. hat geschrieben:Solltest du sonst noch Fragen haben, dann immer her damit!
Fragen habe ich genug, aber die meisten klären sich nach ausgiebigem lesen von Dokumentation und Quellcode irgendwann von selbst ;)
...
Zum Beispiel bei der Dokumentation des Frontcontrollers, Abschnitt 2.6. Model-basiertes View-Konzept
... da wäre evtl. ein Hinweis auf ein SessionSingleton erzeugtes Modell, und dann vorallem auf den Parameter

Code: Alles auswählen

<fcon:importdesign  
        sessionsingleton ="TRUE"
ganz hilfreich gewesen ....
aber nach längerem suchen hab ich es dann in der fcon_taglib_importdesign.php gefunden ....

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

Re: Konfiguration: Erlaubte Zeichen in den .ini

Beitrag von dr.e. » 23.06.2009, 23:36:48

Hallo Tostan,

danke für den Hinweis. Diese Änderung wurde hier im Forum besprochen aber scheinbar leider nie in die offizielle Doku umgezogen. Das habe ich nun erledigt und es findet sich sowohl die vollständige Definition des Tags als auch ein Hinweis auf die API-Dokumentation im genannten Kapitel.

Wie du schon erkannt hast, genügt aber oft ein kurzer Blick in die TagLibs, da diese Code-technisch recht übersichtlich sind und die Attribute sind durch den Zugriff auf $this->__Attributes kenntlich. Das soll natürlich keine Entschuldigung für fehlende Doku sein, hilfreich ist es aber oftmals schon. :)
Fragen habe ich genug, aber die meisten klären sich nach ausgiebigem lesen von Dokumentation und Quellcode irgendwann von selbst
OK. Sollten Fragen offen bleiben, dann immer her damit! ;-)


Viele Grüße,
Christian
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste