Mailinglisten-Archive |
Ralf Geschke wrote: > Im Archiv schrieb Ulf von einer Nachfolgerin von OOHForms namens > FORMS? Ist diese bereits sichtbar? Handelt es sich um "Form.php" aus > dem pear-Verzeichnis von PHP4? Was hat es damit auf sich? Habt Ihr die > schonmal benutzt? ... eigentlich sollte ich jetzt programmieren. Aber für Geld und Ruhm tue ich alles ;-) An den Formularabstraktionen scheiden sich generell die Geister. Es ist schwierig den vollen Funktionsumfang in einer Abstraktion abzubilden, ohne daß diese zu fett wird und am Ende keinen Vorteil mehr bringt. Die alten OOHForms funktionieren gut und man sollte sie sich mal ansehen. Der Code selbst ist durchwachsen. Die Grundidee ein Formular als Sammlung von Objekten zu begreifen ist sehr interessant, die konkrete Implementation jedoch teilweise schwer zu lesen. Der Code wurde objektorientiert angedacht, um dann wieder stellenweise in eine reine Benutzung der OO Syntax abzufallen, kurzum es sind grausame Brüche in der OO Logik enthalten. Den Ansatz fand ich jedoch sehr interessant und ich benötigte i.W. in der Vergangenheit zwei Dinge: - Einbindung von Templates - bedingte Validierungen Beides boten sie OOH Forms zu dem Zeitpunkt da ich damit anfing zu spielen nicht. Um nicht gleich das Rad neu zu erfinden, habe ich zunächst mit dem alten Code gespielt, aber die zwei Punkte erwiesen sich wirklich als Killerargumente gegen den alten Code. Kurzum irgendwann stampfte ich einen neuen Code aus dem Boden, der auch im PHPLib CVS ist. Leider fand ich noch nicht die Zeit die Arbeit abzuschließen. Ich fand folgende Anforderungen an eine Formularabstaktion: - serverside Validierung - bedingte Validierungen - Benutzung: $f = new form; $f->isValid(); $errors = $f->getErrors(); - frei definierbare Templates - Wizards/Assistants und tabbed panes Das Gros befindet sich im CVS der PHPLib. Hier kannst Du bereits die zukünftige Struktur erkennen. Bislang hat sich aber nur einer durch die 5.000 Zeilen Code gewühlt, die anderen haben aufgegeben. Er fand die beiden untersten Level form/form_elements gut, weiter ist er noch nicht. Hier wird sich auch nicht mehr viel tun außer der Logik für den JavaScript Code, der etwas komplizierter ist, weil er Custom Validators unterstützen muß. template und panemanager solltest Du noch mit vorsicht genießen, da wird es noch etliche Umstellungen geben, die API bleibt weitgehend stabil. Wie das in der Praxis etwa aussieht, siehst Du ebenfalls im CVS unter pages/form. Doku gibt es noch keine, Alpha Code dokumentieren macht halt keinen Sinn. Die Abstraktion bis zu diesem Level ist sehr praktisch, aber sie hilft uns nicht wirklich weiter. Der Code wird zwar vom HTML befreit, aber nicht viel kürzer. Wir haben immer die gleiche Aufgabe bei Webapplikationen: sauge die Daten - zeige die Daten - speicher die Daten. Für den gesamten Prozeß brauchen wir einen Abstraktion, damit Standardaufgaben abgefeuert werden können. Ein halbes Jahr habe ich die Aufgabe schon im Hinterkopf und erst jetzt habe ich eine grobe Vorstellung davon, wie die Lösung aussehen könnte. Wart's einfach ab, wenn ich mal viel Zeit habe kommt das letzte Puzzlestück. Das Material aus dem PEAR Repository kenne ich nicht. Ulf -- Jede korrekte Antwort kostet. Spendenangebote bitte per PM.
php::bar PHP Wiki - Listenarchive