Engine
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
Neue Instanz erstellen
Setzt den Prefix
CacheManager setzen
Standardmässig werden die Markups-Attribute entfernt. Über diese Methode kann das Verhalten geändert werden.
Diese Methode liefert die Einstellung der Engine in Bezug auf das Entfernen von Attributen zurück.
Aufgetretenen Fehler melden
Der Prefix, der in der HTML-Datei für die Markup-Operationen verwendet wird.
Verwendetes Dataset
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()
).
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.
at line 123
Engine
setCacheManager(CacheManager $manager)
CacheManager setzen
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.
at line 150
boolean
shouldRemoveMarkup()
Diese Methode liefert die Einstellung der Engine in Bezug auf das Entfernen von Attributen zurück.
at line 161
Engine
raiseError(string $error)
Aufgetretenen Fehler melden
at line 172
string
getAttributePrefix()
Der Prefix, der in der HTML-Datei für die Markup-Operationen verwendet wird.
at line 193
Dataset
getDataset()
Verwendetes 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.
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.
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); }
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.