Thomas Schmieder: Web-Programme modular aufbauen

Beitrag lesen

Hallo Andreas,

ich sowas seinerzeit (vor ca. 15 Jahren) mal in dBase programmiert.

Das ist absolut vergleichbar, da dBase auch eine Interpretersprache war/ist, in der Makronamen ($$variable) möglich sind. Man muss für die Erweiterungen nur einen "Include-Anker" setzen. Der zeigt auf die Erweituerung und lädt die nach. Auch die Mehrsprachigkeit kann man so sehr leicht erschlagen. Die Begriffe in Variablen zu verpacken, darum kommst Du nicht drum herum. Aber eine Datenbank, wie z.B. Informix oder MySQL brauchst du nicht dafür. Das dauert viel zu lange. Ein rudimentärer Zugriff auf eine Datei mit der Language-Expansion reicht völlig. Das entsprechende Include muss eben nur nach, oder anstelle der Origianlzuweisung erfolgen.

Es empfiehlt sich, alle Funktionen ausschließlich mit assoziativen  Arrays als Übergabeparametern zu schreiben. Dann kann man neue Parameter leicht einführen, ohne dass die alte Funktionsausführung damit ungültig wird. Nur der neue Parameter wird eben ignoriert. Das ist das, was man im DLL-Konzept mit Call by Index oder Call by name erreicht. Die neue DLL kann alles, was die alte auch konnte, und kann auch mit der kleineren Parameteranzahl der alten umgehen.

Menus kann man auf diese Weise auch leicht erweitern. Die Position des neuen Paramters ist bei Call-by-Name (nicht verwechslen mit CallByReference/CallByName) für die Funktiohn auch unerheblich, für den User aber ggf. entscheidend.

Jede neue Funktion muss dann nur wieder ein include auf eine leere Referenz mitbringen.

Da es sich bei Webanwendungen allerdings sowieso um atomistische Programmmodule handelt, sollte man diese dann besser austauschen...

Die Naviagation könnte aber alle Module laden und jedes bringt seinen Array-Eintrag zur Navigation mit. Du musst dann nur eine Schleife auf "Include all Files like *.module" legen.

Viel Spaß und nochmehr Erfolg

Tom