Mein Web-Application-Framework als Interface in Perl implementiert

Das Grundgerüst meines Frameworks ist ein Interface

Vom HTTP Request bis zur Response stehen die Abläufe prinzipiell fest, denn was in der Response gesendet werden soll, wird über eine Konfiguration bestimmt. Höchstens bei interaktiven Anwendungen ergeben sich Verzweigungen, sei es nur bei einer fehlerhaften Eingabe. In der Regel ist der auszugebende Content-Type: text/html und so ergibt sich, nachdem eine Instanz der Framework-Subklasse erstellt wurde, stets der folgende Ablauf: $fw->data(); wird aufgerufen, dass ist die Methode, welche zur Beschaffung des Body-Template zuständig ist. Im Default wird das Template aus dem Bereich unterhalb des __DATA__ Token geladen (Kompaktklasse). $fw->init(); setzt bestimmte Werte fürs Template, auf jeden Fall Eigenschaften in die FW-Instanz. Solche Eigenschaften können z.B. ein Data-Acccess-Layer sein oder eine Verbindung zu MySQL. Nun kommt die Verzweigung, wo festgestellt wird, ob Parameter im Request sind: if( $fw->param ){ $fw->control; } else{ $fw->browse; } Die Interface Methode control() entspricht dem Controller in einem MVC und beinhaltet eine für den URL spezifisch konfigurierte Parameter-Kontroll-Struktur. Ggf. wird hier ein anderes Template geladen oder ein gänzlich anderer Content-Type in den Ausgabepuffer geschrieben. $fw->trailer(); ist die letzte Interface-Methode, die in einer Responseklasse definiert sein kann. Damit können weitere Platzhalter gesetzt werden. Manche Klassen definieren nur einen trailer(). Nun sind alle Datenpuffer mit Daten bestückt, die Framework-Instanz kommt zurück in die main-Class wo die Response zusammengebaut wird. Dazu werden die Methoden $fw->header(); $fw->start_html(); $fw->menu(); $fw->bodybuild(); $fw->end_html(); nacheinander aufgerufen. Falls ein von text/html abweichender Content-Type ausgegeben werden soll, werden anstelle dieser Methoden nur $fw->header(); $fw->content(); aufgerufen. Das ist beispielsweise auch bei AJAX-Responses der Fall.

Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. s​os­@rolf­rost.de.