Platzhalter (Brandbox/Placeholder)
Mit diesem Codepaket können durch eine einfache Methode Platzhalter mit komplexen Inhalten ersetzt werden. Für jeden Platzhalter wird in PHP ein Event ausgelöst welches den Ersatztext für diesen Platzhalter ermitteln soll.
Definition und Austausch von Platzhaltern
Platzhalter welche von diesem Codepaket ausgetaucht werden sollen, müssen innerhalb von zwei geschweiften Klammern eingeschlossen sein. Es können beliebig viele Platzhalter in einem Text platziert werden.
... {{ [Platzhalterdefinition] [Option="Wert"] [Option=123] [Option=false] }} ...
Auf diese Weise definierte Texte können mithilfe des nachfolgenden Codes bearbeitet werden um die Platzhalter mit ihren echten Werten auszutauschen.
use Brandbox\Framework\Brandbox\Placeholder;
// Variablen welche dem Platzhaltercode zur Verfügung stehen
$context = [
'something' => 'strange',
'person' => [
'firstname' => 'Max',
'lastname' => 'Mustermann',
],
];
$source = 'Das ist ein Beispieltext mit einem {{ [Platzhalterdefinition] }!';
$content = $this
->staticController(Placeholder\Manager::class)
->get($source, $context)
;
// $content enthält nun den Text aus $source mit ersetztem Platzhalter
Verfügbare Platzhalter und Variablen
Manchen Platzhaltern können Variablen mitgegeben werden um bspw. den Inhalt für den Platzhalter zu definieren. Diese Variablen können als array
oder object
der Manager-Methode aus dem o.g. Beispiel mitgegeben werden. Die Variablen werden dann innerhalb eines Platzhalters mit ihren Namen oder Indexen aus dem Kontext angesprochen. Verschachtelte Informationen werden mit einem Punkt (.
) getrennt. Alle Variablen müssen mit einem Dollarzeichen ($
) beginnen. Neben den Variablen können auch statische Parameter gesetzt werden. Ein string
muss in Anführungszeichen ("
) eingeschlossen werden, true
und false
werden als boolean
interpretiert und Zahlen als integer
oder float
.
Platzhalterdefinition | Beschreibung |
---|---|
| Versucht die übergebene Variable oder Parameter mithilfe des |
| Gibt die übergebene Variable ohne eine Veränderung aus. |
| Versucht die übergebene Variable mithilfe von |
| Formatiert die übergebene Variable oder Parameter als Zahl unter Berücksichtigung der aktuellen Sprache und des Landes. Es können nachfolgende Optionen übergeben werden um die Formatierung zu beeinflussen. |
| Neben spezifischen Platzhaltern können auch native PHP-Funktionen aufgerufen werden. Hierbei werden neben dem Namen der gewünschten PHP-Funktion auch die entsprechenden Parameter für diese Funktion benannt und befüllt. Die Namen der Parameter entsprechen hierbei den echten Parameternamen der PHP-Funktion. Beispiel anhand von number_format{{ php=number_format num=$input decimals=3 decimal_separator=", " }} Die aktuell freigegeben PHP-Funktionen sind: |
Programmatische Erweiterung
Dieses Codepaket stellt die folgenden Events zur Verfügung um das Verhalten zu beeinflussen:
Eventname | Beschreibung |
---|---|
| Wird für jede Stelle innerhalb des |