Anandos Template-Parser - technische Dokumentation - 5 - Anwendungslogik programmieren
Abschnitt 5
5.1. Session-Verwaltung
Bei der Programmierung von Funktionen für den Parser ist folgendes zu beachten:
- session.auto_start() darf nicht verwendet werden, damit in init.php noch Klassendefinitionen geladen werden können, die für Objekte der Session gelten.
- session_start() wird im globalen Bereich der init.php an einer Stelle platziert, an der alle Klassendefinitionen bereits erfolgt sind.
5.2. zeitlicher Ablauf der Abarbeitung der Funktionen
Zeitliche Reihenfolge der Abarbeitung der Programmkomponenten
- Initialisierung des Parsers (Einlesen der Konfigurationsdatei, Initialisieren der parsereigenen Variablen)
- Auswertung der parserbezogenen Aufrufparameter (GET- oder POST-Variablen), z.B. sATP_TplDir, sATP_AppDir, inst, usw.
- Ausführung der globalen Inhalte der init.php der eingebundenen Anwendung (hier sollte der Session-Start erfolgen)
- Setzen der vordefinierten ATP-Variablen, wie z.B. ATPVER, sATP_AppDir, DATE usw.
- Ausführung der Funktion init() aus der init.php der eingebundenen Anwendung
- Auswertung des boolean Flag $_ATP_OUT: Wenn dieses von der Anwendung nicht auf false zurückgesetzt wurde, werden auch die weiteren Schritte abgearbeitet:
- Einlesen der zu verwendenden Template-Datei (Parameter sATP_TplFile, Wert aus atp.conf.php oder Standardwert "index.html")
- Auflösung aller Marker-Tags - hier angegebene Funktionen werden in dem Moment abgearbeitet, in dem die Marker-Tags aufgelöst werden.
Geschachtelte Marker-Tags werden von innen nach außen aufgelöst.
- Auflösung aller Text-Pattern - angegebene Funktionen werden abgearbeitet
- Transformation der Resscourcen-Links
- evtl. Lokalisierung (Wenn von Anwendung eine Sprachübersetzungstabelle bereitgestellt wurde)
- Ausgabe des Ergebnisses (Übergabe des generierten HTML-Textes an Webserver-Prozess und damit an den Client-Browser)
5.3. Hinweise zur Strukturierung der Anwendungsfunktionen
- Variablen, die in den Platzhaltern verwendet werden, müssen entweder schon in der Session vorhanden sein, oder müssen in der init.php belegt werden. Das kann z.B. in Abhängigkeit von einem übergebenen Parameter geschehen.
- Funktionen, die in den Platzhaltern angegeben werden, werden in dem Moment abgearbeitet, in dem die Platzhalter im Template aufgelöst werden. Damit können z.B. mit einer Funktion an verschiedenen Stellen im Template verschiedene Werte ausgegeben werden, die von der Anzahl und Abfolge des vorherigen Aufrufs anderer Funktionen abhängen.
- Text-Pattern-Variablen können auch durch von in Marker-Tag-Platzhaltern verwendeten Funktionen belegt werden, da die Auflösung der Text-Pattern nach der Abarbeitung der Funktionen aus Tag-Markern erfolgt.
- Tag-Marker können geschachtelt werden. Sie werden von innen nach aussen aufgelöst, was bedeutet, dass die in äusseren Tags verwendeten Funktionen die Ausgabe der in inneren Tags verwendeten Funktionen "sehen" .
- Funktionen, die in Text-Pattern verwendet werden, sind parameterlos.
5.4. Übersicht über die globalen Steuervariablen
Variablen-Bezeichner |
Typ |
Bedeutung/Funktion |
$_ATP_OUT |
boolean |
default: true
wenn durch Anwendung auf false gesetzt, wird die Ausgabe des Parsers unterdrückt. |
|
|
|
|
|
|
5.5. typische Verzeichnisstruktur für eine Anwendung unter Verwendung des Parsers
Stammverzeichnis |
Parser-Dateien (index.php usw.) |
+ |
index.php |
Parser |
+ |
atp-v4.inc.php |
Parser-Funktionen |
+ |
system.msg |
Systemmeldungstexte für Parser |
+ |
atp.conf-vorlage.php |
Vorlage für atp.conf.php - Grundeinstellungen für Parser
umzubenennen oder zu kopieren in atp.conf.php |
+ |
atp_uas.txt |
Regeln für Auswertung der User Agent Strings |
+ |
prg/ |
Programmdateien der Anwendung |
|
+ |
init.php |
|
|
+ |
|
(evtl. weitere, anwendungsspezifische Dateien) |
+ |
tpl/ |
Template-Dateien der Anwendung |
|
+ |
index.html |
default-Name für Haupt- bzw. Start-Template |
|
+ |
images/ |
Beispiele für anwendungsspezifische Unterverzeichnisse |
|
+ |
css/ |
|
+ |
script/ |
+ |
lib/ |
gemeinsam genutzte Bibliotheken für Parser und Anwendungen |
|
+ |
system.inc.php |
Verwaltung von Systemmeldungstexten |
|
+ |
aneg-lib.inc.php |
allgemein verwendbare Funktionen |
|
+ |
aneg-err.inc.php |
zentrales Error-Objekt |
Artikel zuletzt bearbeitet am: 13.04.2019 15:35