Anandos Template-Parser - technische Dokumentation - 5 - Anwendungslogik programmieren

    Abschnitt 5

    < Abschnitt 4 Marker-Funktionen und -Variablen Inhaltsverzeichnis Abschnitt 6 -  Parser-API >

    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

    1. Initialisierung des Parsers (Einlesen der Konfigurationsdatei, Initialisieren der parsereigenen Variablen)
    2. Auswertung der parserbezogenen Aufrufparameter (GET- oder POST-Variablen), z.B. sATP_TplDir, sATP_AppDir, inst, usw.
    3. Ausführung der globalen Inhalte der init.php der eingebundenen Anwendung (hier sollte der Session-Start erfolgen)
    4. Setzen der  vordefinierten ATP-Variablen, wie z.B. ATPVER, sATP_AppDir, DATE usw.
    5. Ausführung der Funktion init() aus der init.php der eingebundenen Anwendung
    6. Auswertung des boolean Flag $_ATP_OUT:  Wenn dieses von der Anwendung nicht auf false zurückgesetzt wurde, werden auch die weiteren Schritte abgearbeitet:
    7. Einlesen der zu verwendenden Template-Datei (Parameter sATP_TplFile, Wert aus atp.conf.php oder Standardwert "index.html")
    8. 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.
    9. Auflösung aller Text-Pattern - angegebene Funktionen werden abgearbeitet
    10. Transformation der Resscourcen-Links
    11. evtl. Lokalisierung (Wenn von Anwendung eine Sprachübersetzungstabelle bereitgestellt wurde)
    12. 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