Argumentzeichenkette¶
Mit den Klassen ArgumentText und MessageArgumentFormatter lassen sich Texte mit integrierter
Map anlegen, verwalten und übersetzen.
Eine Argumentzeichenkette hat folgenden Aufbau:
Beschreibungstext mit Platzhaltern::key1=value1::key2=value2
─────────⯆───────────────────────╯
Textzeile ╰─⯆─╯ ╰──⯆───╯
Trennzeichen ╰─⯆────╯ Zweites
Erstes Schlüssel/
Schlüssel/ Wert-Paar
Wert-Paar
Über den Schlüssel pluralrulekey kann in der Klasse MessageArgumentFormatter spezifiziert werden, welcher Schlüssel für
die Mehrzahlregel verwendet werden soll. Der Schlüssel wird aber nur dann verwendet, wenn in der format Methode kein $pluralRuleKey
übergeben wird.
MessageArgumentFormatter¶
Die Klasse MessageArgumentFormatter erlaubt es schnell, einfach und sicher eine Argumentzeichenkette
zusammenzustellen. Diese kann dann zum Beispiel im Zusammenhang mit Localen oder Exceptions
verwendet werden.
$text = (new \Alvine\Text\ArgumentText('Das ist ein Test'))->setValue('a','b');
echo (string) $text;
// ⇢ Das ist ein Test::a=b
ArgumentText¶
Außerdem bietet die Klasse ArgumentText die Vorlage für die Verwendung mit dem MessageArgumentFormatter. In diesem Beispiel
wird eine Nachricht erstellt und in der Zeichenkette die Argumente mitgegeben.
$text=(new \Alvine\Text\ArgumentText('Meine {key} Meldung'))
->setValue('key', 'erste');
echo (string) $text;
// ⇢ Meine {key} Meldung::key=erste
echo (new \Alvine\Text\MessageArgumentFormatter())->format($text);
// ⇢ Meine erste Meldung
Ein wichtiges Einsatzgebiet sind Fehlermeldungen. Hier können die Meldungen mit den Argumenten gespeichert werden.
try {
// Fehler tritt auf
throw new Exception('Kein freier Speicherplatz');
} catch(\Exception $ex) {
$message="Es ist der Fehler '{error}' aufgetreten.::error=".$ex->getMessage();
}
echo (new \Alvine\Text\MessageArgumentFormatter())->format($message);
// ⇢ Es ist der Fehler 'Kein freier Speicherplatz' aufgetreten.