Skip to content
This repository has been archived by the owner on Jul 7, 2018. It is now read-only.

DE Volt

Wenzel Pünter edited this page Aug 30, 2014 · 2 revisions

##Kurzbeschreibung Volt ist eine durch Jinja beeinflusste Sprache für View-Templates und intern ein Engine-Adapter für die View-Komponente des Model-View-Controller-Systems von Phalcon. Volt wird - ähnlich wie PHP - in HTML-Dokumente eingebettet und lässt sich aufgrund dieser Eigenschaft nahtlos in PHP konvertieren. Um dies zu erreichen, werden die mit Volt angereicherten HTML-Templates in einem mehrstufigen Verfahren in PHP-Code umgewandelt, welcher zur Geschwindigkeitsoptimierung zwischengespeichert wird.

##Kompilierung Übersicht zum Kompilierungsvorgang

Wenn ein Volt-Template neu übersetzt werden muss, werden die folgenden Schritte bis zur Generierung des PHP-Codes durchgeführt:

  • Scanner Der Scanner liest die Zeichenkette ein, entfernt Kommentare und trennt den String an Tokens. Diese einzelnen Abschnitte der Zeichenkette werden anschließend weiterverarbeitet.
  • Tokenizer Im Tokenizer werden die durch den Scanner markierten Tokens und Inhalte gruppiert, bzw. extrahiert. Der Tokenizer generiert eine Intermediate-Darstellung, welche den Volt-Code als Baumstruktur aus Tokens mit Inhalten zurückgibt.
  • Compiler Der Compiler verarbeitet die von Tokenizer generierte Baumstruktur zu gültigem PHP-Code und übergibt diese Daten entweder an die View-Komponente oder speichert die generierten Daten als Datei, sodass der Volt-Code nicht erneut kompiliert werden muss.

##Namespaces, Klassen und Interfaces ###Übersicht Allgemeine UML-Klassenübersicht

Sämtliche Volt-bezogenen Klassen (mit Ausnahme der View-Integration) finden sich in den Namensräumen Phalcon\Mvc\View\Engine und Phalcon\Mvc\View\Engine\Volt.

###Klassen UML-Klassenübersicht

Clone this wiki locally