
Eine Einführung in Fusebox Techniken
Was ist Fusebox?
Fusebox ist ein Art Coldfusion Applications zu erstellen. Angefangen von kleinen Modulen,
über mittlere Systeme bis hin zu großen Systemen. Es handelt sich um einen freien Standard.
Jeder kann den Teil nutzen, den er für gut befindet und niemand ist gezwungen alle
Vorschläge zu nutzen. Fusebox ist von Coldfusion Entwickler für Coldfusion Entwickler
"entwickelt" worden.
Warum Fusebox? Was sind die Ziele?
- Übersichtlichkeit des Codes
- Wiederverwendung von Code
- Strukturierung von Applications
- Vereinfachung der Übersichtlichkeit eine Application
- Vereinfachung des Projektmanagements
- Erstellung von "portablen "Teilapplications"
dies sind die Grundlegenden Ziele des Fusebox Standards. In diesem Artikel
möchte ich NICHT den kompletten Fusebox Standard darlegen (für den Fall
das ein Leser schon etwas weiter ist), sondern die wichtigsten Techniken
für einzelne Fusebox Module (Fuses) erklären. In einem eventuell späteren
Artikel gehe ich dann auf den vollen Standard ein.
Ich möchte primär die Techniken vorstellen und Interesse wecken. Für ausführliche
Informationen empfehle ich dann direkt auf der Fusebox Seite nachzuschauen.
Die oben gennanten Ziele werden durch folgende Vorlagen erreicht:
1. Erstellung einer Switch Datei
Es wird eine Switch Datei erstellt (normalerweise index.cfm), die alle
dem Modul zugeordneten Funktionalitäten per <CFINCLUDE> aufruft. Wichtig ist dabei,
das das alle Funktionen aus diesem Modul nur über die Switch Datei erfolgt.
Jedes Unterscript verweist dabei immer nur auf die INDEX Datei.
Es wird also wenn das Modul verwendet wird nur auf diese eine Datei Zugegriffen.
Welche Funktionalität dabei aufgerufen wird, wird über den Parameter
"Fuseaction" festgelegt. Dieser kann als URL oder Form Variable weitergeben werden.
Hier ein Beispiel:
<cfswitch expression="#fuseaction#">
<!--- Aktion 1 --->
<cfcase value="aktion1">
<cfinclude template="dsp/dsp_header.cfm">
<cfinclude template="qry/qry_aktion1.cfm">
<cfinclude template="dsp/dsp_aktion1.cfm">
<cfinclude template="dsp/dsp_footer.cfm">
</cfcase>
<!--- Aktion 2 --->
<cfcase value="aktion2">
<cfinclude template="qry/qry_newsite.cfm">
<cfinclude template="qry/act_newsite.cfm">
<cfinclude template="dsp/dsp_queryresult.cfm">
</cfcase>
</cfswitch>
Über <CFSWITCH> wird der Parameter ausgewertet und der entsprechende Code ausgeführt.
Desweiteren wird wohl aufgefallen sein, das vor jedem Dateiname entweder dsp, qry
oder act steht.
Warum nun das ganze?
1. Wenn man sich die INDEX Datei anschaut, erkennt man sehr schnell, welche Datei für was
zuständig ist.
2. Durch das zusammensetzen einer Internetseite aus verschiedenen Codestückchen
(header, footer, Querys, etc) lassen sich Codestücke wiederverwenden, gerade häufig benutze
Querys müssen so nicht mehrmals geschrieben werden, bzw. bei Änderungen abgeändert werden.
3. Dadurch das man den Dateien act,qry bzw, dsp Voransetzt und streng trennt, wird
die Funktionalität von der Ausgabe getrennt.
2. Erstellung der dsp,act,qry Dateien
Bei Fusebox gibt es wie vorher schon bemerkt 3 verschiedene Dateitypen:
dsp
sind reine Ausgabedateien, in Ihnen wird weder ein Datenbankanfrage (Query) ausgeführt noch
viel mit Coldfusion Tags gearbeitet. Normalerweise sollten diese Dateien nicht mehr als
CFOUTPUT oder CFINPUT enthalten.
qry
sind reine Datenbankabfragen, was bedeutet, das in diesen Dateien keine UPDATE, DELETE oder
INSERT Anweisungen Auftreten (zur Erklärung query von Englisch nach Deutsch übersetzt heißt
nur Abfrage). Datenbankänderungen werden über die act Dateien abgewickelt. Sie enthalten nur
den <CFQUERY> Befehl, sie verarbeiten keine Daten und geben keine Daten aus (also kein CFOUTPUT).
act
sind die Dateien, die einfach ausgedrückt etwas tun, in Ihnen ist alles erlaubt, was nicht der
Ausgabe (CFOUTPUT) oder der Datenbankabfrage dient.
3. Verkettung von Einzelapplications und Fazit
Wenn man mehrere kleinere Unterapplikationen nach diesem Schema geschrieben hat kann man eine
Übergeordnete INDEX Datei erstellen, die wiederum die entsprechenden Unterapplikationen aufruft.
Dies ist die Fusebox (der Sicherungskasten), in Ihn lassen sich beliebig viele Unterapplikationen
einbinden. Wenn eine diese Applikationen Probleme bereitet laufen die anderen unabhängig weiter
(Wie in einem Haus in dem eine Sicherung für ein Zimmer ausfällt, dann haben die anderen Zimmer
immer noch Strom).
Durch die einheitliche Programmierung, fällt es Fusebox Entwicklern untereinander einfacher sich
in fremden Code reinzudenken.
Weitere Informationen sind unter:
www.fusebox.org oder
www.halhelms.com zu finden.
Tim Köhler tim.koehler@direct-place.com - 07.06.2001