Thread Perl WebFramework nun auch in c (6 answers)
Opened by rosti at 2018-12-27 19:58

rosti
 2018-12-28 14:09
#189429 #189429
User since
2011-03-19
3219 Artikel
BenutzerIn
[Homepage]
user image
Quote
Du leitest manche Anfragen an dein Framework in Perl und andere an dein Framework welches du in c umgeschrieben hast weiter, richtig?


Korrekt. Das passiert in der Serverkonfiguration. Also wird ein Request entweder auf das Perl-FW oder auf das c-FW Rewrited und das völlig unabhängig voneinader.

Genauso wie die Perl main, implementiert die c main nur ein Interface, die c main sieht derzeit so aus:


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
int main(){
struct EAV *eav = NULL;
readBin(&eav, BINFILE);

URL = getenv("REDIRECT_URL") ? getenv("REDIRECT_URL") : "/";
// Interface Funktionen
header("Content-Type", "text/html; Charset=UTF-8",1);
start_html(eav);
menu(eav);
bodybuild(eav);
end_html(eav);
return 0;
}


Herzstück also die gemeinsame Konfigurationsdatei BINFILE welche die Routingtable + Konfiguration beinhaltet. Diese Binary wird in c genauso wie in Perl auf eine Entity/Attribute/Value Datenstruktur gelesen, der wahlfreie Zugriff sieht dann z.B. so aus:

Code: (dl )
1
2
3
4
5
 
in c
getVal(eav, URL, "title");
in Perl
$responseobject->eav("title");


und so bekommen die Funktionen des Interface den Zugriff auf Alles was für die Response gebraucht wird. Letztere kann, je nach Konfiguration beliebigen Types sein.


Das ist der Plan ;)


PS: Performancegewinn gegenüber Perl: Faktor 10 !

.
Last edited: 2019-01-02 12:34:24 +0100 (CET)

View full thread Perl WebFramework nun auch in c