[Vienna-pm] Web Umgebung in Perl

Maros Kollár maros at k-1.com
Fri Jan 14 03:57:47 PST 2005


Hallo Allerseits,

Ich habe über die letzten paar Jahre hinweg langsam aber kontinuierlich an
einem netten (glaube ich zumindest) Tool gearbeitet dass ich euch auf diesem
Wege jetzt zukommen lassen will:

Es handelt sich dabei um eine Umgebung in der man relativ einfach und
schnell Web Applikationen bauen kann. Ich habe selber schon ein mittelgroßes
CMS, ein paar kleinere Tools und etliche Seiten in dieser Umgebung
implementiert.

Highlights:

- Template Parser mit XML Syntax (für alle die XML nicht mögen lässt sich
das sicher relativ leicht umbauen)
	z.B. <namespace:tag attribut="wert"/> oder <namespace:tag>text und
tags</namespace:tag>
	Die Attribute können Strings, oder Variablen beinhalten.
	z.B. attribut="[test]" 
	Variablen können auch auf komplexe Perl Datenstrukturen
referenzieren
	z.B. attribut="[test->3->[element->2]->id]" entspricht
$var->{'test'}[3]{$var->{'element'}[2]}{'id'}
	Der Namespace steht für eine Syntaxdefinition; es gibt 7 Standard
Syntaxdefinition die geladen werden können
		- ws-Syntaxdefinition: for,foreach Schleifen;
Switch,If-Elsif-Else, Equal, Notequal Vergleiche; Variablen ausgeben und
setzen; Weitere Templates einfügen; Perl Code ausführen; ...
		- sub-Syntaxdefinition: Beliebige Blöcke als Subroutinen
definieren und ausführen
		- parser-Syntaxdefinition: Mit dem Output herumspielen
(löschen, speichern, laden, filtern, ...) 
		- debug-Syntaxdefinition: Einfache Dumps (Nodes und
Variablen)
		- (!)grid-Syntaxdefinition: Automatisches Editieren von
Datenbank Tabellen (Tabellenansicht)
		- (!)mask-Syntaxdefinition: Ähnlich wie grid, jedoch nur mit
einem Datensatz pro Seite.
		- my-Syntaxdefinition: Benutzerdefinierte Funktionen in
Perl.
	Weitere Syntaxdefinition können leicht erstellt werden.
- "Schöne URLS"
	z.b: http://www.domain.tld/index.pl/dir/menu.html (index.pl kann mit
mod_rewrite natürlich maskiert werden)
- Einfacher Umgang mit URL Parametern, Cookies und CGI Parametern
	z.b.
http://www.domain.tld/index.pl/$parameter1=wert;parameter2=wert$/...
- Gutes Error Handling
	(Fast) Alle Fehler werden intern abgefangen und behandelt.
- Brauchbare Hilfsmodule
	Wrapper für DBI::Mysql, MIME Mails erstellen/versenden, ...

Unter www.futurelabs.net/FUTUREENV.zip findet ihr das Tool mit einer
rudimentären Doku (die Doku habe ich auf die Schnelle aus der Doku für das
CMS erstellt; daher nicht ganz konsistent - Was nicht in dieser Doku steht
findet ihr wahrscheinlich im Quellcode) und einigen einfachen Beispielen.

Verbesserungsvorschläge, Kritik, Beiträge (z.B. in Form von neuen
Syntaxdefinitionen oder anderen Erweiterungen) und natürlich die Verwendung
dieses Tools sind hoch willkommen. Wenn das Ding ankommt werde ich es
irgendwo allgemein zugänglich aufstellen.

Hoffe es funtioniert alles da ich bis zuletzt an den Details geschraubt
habe.

Falls es Fragen gibt bin ich gerne bereit diese zu beantworten

Beste Grüße
Maroš

Ps.: Der Parser lässt sich natürlich auch in einer anderen Umgebung benutzen
(Beispieldatei ist beigefügt)

--
e-mail: maros |at| k-1.com
web: http://www.k-1.com
pgp key: http://www.k-1.com/pgpkey.txt
icq: 12281254
_________________________________

"You need something to frighten people with - to prevent them from paying
attention tho what's really happening to them" ,Noam Chomsky



More information about the Vienna-pm mailing list