phpbar.de logo

Mailinglisten-Archive

[php] OOHForms & Co?

[php] OOHForms & Co?

Ulf Wendel ulf.wendel_(at)_redsys.de
Tue, 22 Aug 2000 20:00:24 +0200


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