Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

Version 1 Nächste Version anzeigen »

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] }} ...

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. 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.

PlatzhalterdefinitionBeschreibung
{{ i18n=[Variable oder Parameter] }}Versucht die übergebene Variable oder Parameter mithilfe des TranslatationManager zu übersetzen. Der Parameter oder die Variable müssen hierzu dem Format Paketname.Übersetzungsidentifikator entsprechen.
{{ output=[Variable] }}Gitb die überbene Variable ohne eine Veränderung aus.
{{ readable=[Variable] }}Versucht die übergebene Variable mithilfe von Brandbox/Casting in einen menschenlesbares Format zu bringen. Hierzu muss die Variable innerhalb eines Objektes sein welches das EntityInterface von Brandbox/Dbal implementiert.

Pogrammatische Erweiterung

Dieses Codepaket stellt die folgenden Events zur Verfügung um das Verhalten zu beeinflussen:

EventnameBeschreibung
OnPopulatePlaceholderWird für jede Stelle innerhalb des $source-Parameters ausgelöst, welche innerhalb von geschweiften Klammern ({{ ... }}) eingeschlossen ist.
  • Keine Stichwörter