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
protected array $operations

Methods

__construct()

Neue Instanz erstellen

array
getOperations()

No description

setOperations(array $operations)

No description

setOperation(string $operator, Closure $callback)

No description

type
callOperator(array $arguments, type $value)

No description

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

array
getErrors()

Fehlermeldungen der Engine

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 93
__construct()

Neue Instanz erstellen

at line 105
array getOperations()

Return Value

array

at line 115
Engine setOperations(array $operations)

Parameters

array $operations

Return Value

Engine

at line 127
Engine setOperation(string $operator, Closure $callback)

Parameters

string $operator
Closure $callback

Return Value

Engine

at line 141
type callOperator(array $arguments, type $value)

Parameters

array $arguments
type $value

Return Value

type

Exceptions

FrameworkException
NotCallableException

at line 187
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 199
Engine setCacheManager(CacheManager $manager)

CacheManager setzen

Parameters

CacheManager $manager

Return Value

Engine

at line 214
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 226
boolean shouldRemoveMarkup()

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

Return Value

boolean

at line 237
Engine raiseError(string $error)

Aufgetretenen Fehler melden

Parameters

string $error Fehlermeldung

Return Value

Engine

at line 247
array getErrors()

Fehlermeldungen der Engine

Return Value

array

at line 257
string getAttributePrefix()

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

Return Value

string Prefix

at line 268
Engine setDataset(Dataset $dataset)

Dataset setzen

Parameters

Dataset $dataset

Return Value

Engine

at line 278
Dataset getDataset()

Verwendetes Dataset

Return Value

Dataset

at line 293
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 346
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 428
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 466
Engine setDebugNode(Element $element)

Debugnode setzen

Parameters

Element $element

Return Value

Engine

at line 483
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