class Engine extends Alvine

Die Template-Engine übersetzt Attribute Ausdrücke in Node-Strukturen. So können in eine statische HTML-Seite dynamiche Inhalte integriert werden.

<div data-replace="static:auto"></auto>

Constants

DEFAULTPREFIX

Prefix für die Attribute

Properties

protected Dataset $dataset
protected string $attributeprefix
protected array $error
protected boolean $removeMarkup
protected Element $debugNode
protected Locale $locale
protected CacheManager $cacheManager

Methods

__construct()

Neue Instanz erstellen

setAttributePrefix(string $prefix)

Setzt den Prefix

setCacheManager(CacheManager $manager)

CacheManager setzen

removeMarkup(boolean $mode)

Standardmässig werden die Markups-Attribute entfernt. Über diese Methode kann das Verhalten geändert werden.

boolean
shouldRemoveMarkup()

Diese Methode liefert die Einstellung der Engine in Bezug auf das Entfernen von Attributen zurück.

raiseError(string $error)

Aufgetretenen Fehler melden

string
getAttributePrefix()

Der Prefix, der in der HTML-Datei für die Markup-Operationen verwendet wird.

setDataset(Dataset $dataset)

Dataset setzen

getDataset()

Verwendetes Dataset

processElement(Element $element)

Elemente bearbeiten

NodeList|null
getNodes(Fragment|Document|Node|string $html)

Diese Methode liefert je nach Typ des Parameters eine Liste mit Nodes oder eine Node zurück.

Node|Fragment
getProcessedNodes(Fragment|Document|Node|string $html)

Diese Methode holt über die Methode Engine::getNodes() die Node-Struktur des Parameters und wendet auf diese das gesetzte Dataset an. Die Node-Struktur wird dabei gecached (siehe Engine::getNodes()).

setDebugNode(Element $element)

Debugnode setzen

string
getHTML(Fragment|Document|Node|string $html)

HTML parsen und das Ergebnis als Zeichenkette zurückgeben. Diese Methode ruft Engine::getProcessedNodes() auf.

Details

at line 90
__construct()

Neue Instanz erstellen

at line 111
Engine setAttributePrefix(string $prefix)

Setzt den Prefix

Um Kollisionen mit anderen Attributen zu vermeiden, kann man statt des Standard-Attributes data- einen eigenen Prefix z.B. data-my- setzen.

Parameters

string $prefix

Return Value

Engine

at line 123
Engine setCacheManager(CacheManager $manager)

CacheManager setzen

Parameters

CacheManager $manager

Return Value

Engine

at line 138
Engine removeMarkup(boolean $mode)

Standardmässig werden die Markups-Attribute entfernt. Über diese Methode kann das Verhalten geändert werden.

wird die removeMarkup auf false gesetzt bleiben die Attribute erhalten.

Parameters

boolean $mode

Return Value

Engine

at line 150
boolean shouldRemoveMarkup()

Diese Methode liefert die Einstellung der Engine in Bezug auf das Entfernen von Attributen zurück.

Return Value

boolean

at line 161
Engine raiseError(string $error)

Aufgetretenen Fehler melden

Parameters

string $error Fehlermeldung

Return Value

Engine

at line 172
string getAttributePrefix()

Der Prefix, der in der HTML-Datei für die Markup-Operationen verwendet wird.

Return Value

string Prefix

at line 183
Engine setDataset(Dataset $dataset)

Dataset setzen

Parameters

Dataset $dataset

Return Value

Engine

at line 193
Dataset getDataset()

Verwendetes Dataset

Return Value

Dataset

at line 208
protected Engine processElement(Element $element)

Elemente bearbeiten

Hinweis Die Klassennamen der Operations dürfen nicht CamelCase sein, da diese sonst auf Unix-Systemen nicht gefunden werden.

Parameters

Element $element

Return Value

Engine

at line 261
NodeList|null getNodes(Fragment|Document|Node|string $html)

Diese Methode liefert je nach Typ des Parameters eine Liste mit Nodes oder eine Node zurück.

Im Fall eines Objektes vom Typ Document, Fragment oder bei einer Zeichenkette wird eine NodeList zurückgegeben. In dem Fall in dem der Parameter vom Type Node ist, wird auch nur eine Node und keine Nodelist zurückgegeben.

Zum Zwecke des Cachings wird der MD5 des Parameters md5((string)$html) gebildet. Liegt im Cache bereits eine Nodestruktur vor, so wird diese genommen und nicht eine neue Struktur aufgebaut. Diese Funktion benötigt einen gesetzten Cachmanager.

Parameters

Fragment|Document|Node|string $html

Return Value

NodeList|null

Exceptions

UnsupportedException

at line 343
Node|Fragment getProcessedNodes(Fragment|Document|Node|string $html)

Diese Methode holt über die Methode Engine::getNodes() die Node-Struktur des Parameters und wendet auf diese das gesetzte Dataset an. Die Node-Struktur wird dabei gecached (siehe Engine::getNodes()).

Es findet kein gesondertes Caching des Ergebnisses wie bei Engine::getHTML() statt. Soll das Ergebnis gecachet werden, so muss dies zum Beispiel über folgende Struktur erfolgen.

``` $fullCached=null; try { $cacheObject=new \Alvine\Markup\Html\CacheObject((string) $html.(string) $dataset); $nodes=$cacheManager->getObjectByID($cacheObject->getID())->getPayload(); } catch(\Alvine\Persistence\ObjectNotFoundException $e) { $nodes=$engine->getProcessedNodes($html); $cacheObject->setPayload($nodes); $cacheManager->writeObject($cacheObject); }

Parameters

Fragment|Document|Node|string $html

Return Value

Node|Fragment

at line 381
Engine setDebugNode(Element $element)

Debugnode setzen

Parameters

Element $element

Return Value

Engine

at line 398
string getHTML(Fragment|Document|Node|string $html)

HTML parsen und das Ergebnis als Zeichenkette zurückgeben. Diese Methode ruft Engine::getProcessedNodes() auf.

WICHTIG: Bei der Verwendung des Cachemanagers muss darauf geachtet werden, dass das Dataset keine veränderlichen Daten wie Session-ID oder Datumsangaben enthält! Diese Daten erlauben kein Caching.

Parameters

Fragment|Document|Node|string $html

Return Value

string HTML-Zeichenkette