Ich benutze den Input nur dort wo ich ihn brauche. Dort benenne ich dann die Variabel nach ihrem Verwendungszweck. Ich wüßte nicht was daran unflexibel ist.
Ich habe nicht vor, die Waschmaschine mehr als notwendig zu bedienen.
Waschmaschine???
Mein Script ist ein Context.
Der Context hat eine API. Es muss geklärt werden, was mit Input geschieht, der nicht verstanden wird.
Der wird irgnoriert.
Dieses "bevor" kann aber sehr blöd werden wenn es dezentral immer wieder geschehen muss.
$UnClean{integer_one_char}
Willst du das jedes mal überprüfen? Das ist nicht wartbar.
Wie wenn dir dann einfällt, dass dieses Feld nun zwei Integerzeichen lang sein darf?
Üblicherwiese fällt das in den Aufgabenbereich des Formulagenerators. Du erzeugst ein Formular mit Formularfeldern und wenn du dies zentral machst, legst du dort auch die Definition welche Werte erlaubt sind ab.
Du erlaubst die Angabe einer Mailadresse.
Du hast die Wahl diese Angabe einmal zu validieren (soweit sinnvoll), oder unvalidiert zu speichern und dann das bei jeder Verwendung nachzuholen.
Das ist nicht praktikabel.
Wieso nicht? Ich nehme diesen Wert auf und habe danach ein Model mit einem Datenfeld auf das ich mit einem getter zugreife datenmodel->mail() und das verwende ich.
, ich halte einen zentralen Input für überflüssig und in einer komplexeren Umgebung auch nicht für praktikabel.
Ach ich schon. Die Komplexität meiner drei grösseren Anwendungen ist mir deshalb nicht über den Kopf gewachsen, weil ich den Context Script-Input zentral verwalte.
Nein, du schleppst diese Werte aber überall mit. Dabei brauchst du in einem Kontext nur die Werte die der Kontext bennötigt, alle anderen Werte sind uninteressant.
Ich will auch alle Festlegung über zulässigen Input an einem zentralen Ort, so dass er auch über Configfiles definiert werden kann.
Das Bedürfnis hatte ich bisher nicht gehabt. Die zulässigen Inputs hängen doch in der Verantwortung der Module, die sie verarbeiten.
Und wie teilst du den Modulen mit, was der Inhalt von Feld XY formal sein darf?
Du brauchst für jedes Modul eine zentrale Erkundigungsstelle.
Die Parameter die reinkommen können so strukturiert sein
Allgemein action/session/timestamp
Action:
Login user/passwort
Forum user/b_id/t_id/m_id/text/titel/
Message user/von/titel/text
Wer verarbeitet den Input:
action ==> dispatcher()
session => sessionModul()
timestamp => spammodul()
im Dispatcher wird erzeugt
user/passwort => usermodel()
b_id/t_id/m_id/titel/text ==> forummodul()
von/titel/text ==> nachrichtenmodul()
Natürlich muss dann, z.b. das Forummodul Wissen, dass die id's Zahlen sein müssen und titel Text. Ob aber HTML zugelassen ist oder nicht, wird in einer Konfiguration gespeichert. Jetzt kann es aber sein, dass in einem Nachrichtensystem ebenfalls der Parameter titel verwendet wird, dort sind aber andere Filterkritierien wichtig, z.b. wenn sie per Mail verschickt wird, darf das Subjekt kein Zeilenumbruch enthalten, in einer Forumsnachricht spielt das keine Rolle. Es wäre also nicht hilfreich das zentral zu machen, zumal viele Parameter nur für einzelne Module nötig sind und daher gar nicht bearbeitet werden müssen.
Struppi.