Andreas Korthaus: Web-Programme modular aufbauen

Beitrag lesen

Hallo!

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

Da habe ich vermutlich gerade mit Lego gespielt ;-)

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.

Ja, das hört sich ja prima an, aber wie ist das in der Praxis? erstmal, wie bekomme ich das Script dazu, die Module variabel nachzuladen? Dazu muß ich das Script bei jeder Änderung modifizieren, oder? Und was genau soll dann eingebunden werden? Wenn ich da an PHPs include() Funktion denke, was genau soll dann in so einer Datei stehen? Funktionen fallen aus da nicht doppelt vorkommen dürfen und ich den Namen nicht vorher wissen kann. Bei strings dasselbe. Höchtens ein $hauptmenue[]="abc";

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.

Sicher? Eine so einfache und kleine Tabelle auszulesen, wenn eh schon eine persistenet Verbidnung besteht kann _sehr_ schnell gehen!

Ein rudimentärer Zugriff auf eine Datei mit der Language-Expansion reicht völlig.

Wie sieht das denn praktisch  in PHP aus? Was sollte dann genau da drin stehen? Sollte man das nicht lieber Dateiweise verteilen?

Das entsprechende Include muss eben nur nach, oder anstelle der Origianlzuweisung erfolgen.

verstehe ich nicht. Include kannst Du eimal am Anfang machen. Was willst Du dadurch ersetzen? Meinst Du mit Deinem "include" die php-include() Funktion?

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 eine gute Idee.

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

das verstehe ich nicht. Was denn für ein include in der Funktion, udn was für eine Referenz und warum eine leere?

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

was sind "atomistische Programmmodule"? Sowas wie "autonom"? Wie wäre das bei Mehrsprachigkeit?

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.

Ja, das würde wohl gehen. as genau würdest Du dann in einer Datei *.modul stehen haben? Entweder kein PHP, so wie in meiner Antwort auf Svens Posting gechrieben, oder PHP, aber dann array_menue[]="abc", dann würde das automatisch eingefügt, nur bräuchte ich hierfür keine Funktion!

Danke auch Dir!

Viele Grüße
andreas