| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Hallo, ich möchte für einen Formular-Generator (endlich komme ich wieder dazu) die Liste von Operatoren, die einem Element zugeordnet werden können, sortierbar machen. Operatoren (Form_Operator) können Filter (Form_Operator_Filter, z.B. filterTrim), Validator (Form_Operator_Validator, z.B. isNumeric, isNotEmpty, ..) oder Conditionals (Form_Operator_Conditional, z.B. isOptional, checkDate) sein. Filter können den Wert eines Elementes bearbeiten, Validator können den Zustand (value) testen und Conditionals (Konsistenzprüfer nenn ich sie mal) prüfen den Zustand gegen andere Elemente im Formular. isOptional als Conditional prüft beispielsweise sich selbst auf Validität und reagiert je nach dem mit filterEmpty (oder was auch immer als Standard eingestellt sein wird). Hauptsächlich sollen Conditionals jedoch Elemente untereinander gegentesten, beispielsweise muss bei der Auswahl von "Deutschland" auch eine fünfstellige Postleitzahl eingegeben werden, sind es nur 4, ist lediglich die Auswahl von Schweiz und Österreich "konsistent". Laaange Rede kurzer Sinn. isOptional() macht nur Sinn, wenn es als wirklich letzter der Validator und Filter ausgeführt wird, Conditionals wiederum als allerletztes! Gibt es denn so etwas wie ein Sortable Interface für Objekte? Ich denke da an die ArrayObject-Interfaces Countable usw. mit denen ja gewisse Operationen auch möglich sind. Ich stocher grad hier: http://www.php.net/~helly/php/ext/sp...rayObject.html und hier: http://de2.php.net/manual/en/functio...ject-count.php herum aber so richtig was finden tu ich nicht? Dass es usort() gibt weiß ich. Notfalls wirds damit gemacht. |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Hallo Ihr beiden, zieht man die Betrachtung von der Seite der Sicherheit (Typensicherheit, bzw. Applikationssicherheit) auf, so ist meiner Meinung nach der Filter zuerst zu applizieren. In meiner Filter-Implementierung verwende ich noch einen generischeren Ansatz: ich filtere _alle_ REQUEST-Daten. Anschließend sollten Validatoren folgen. Zu diesen zähle ich aber auch sowas wie "isOptional", denn es sollte immer möglich sein mehrere Validatoren auf ein Feld zu definieren. Man kann dann "isOptional" und "validateDate" definieren um ein optionales Feld nur dann zu validieren, wenn eine Eingabe erfolgt ist. Das Thema "Conditionals" kann man für das Thema Datum auch in Validatoren packen ("isValidDate"), Ausgaben eines Feldes kann man mit Providern regeln (hatten wir kürzlich). Man gibt einem Feld dabei einen OutputProvider, der einem das entsprechende zurückliefert. Beim Passwort-Feld ist das oft ein "MD5OutputProvider". Letzteres halte ich aber für ein denkbar schlechtes Beispiel, denn das sollte die Businessschicht regeln. Diese muss nämlich oft eine Bestätigungsmail für eine Anmeldung verschicken, oder diverse andere Themen abhandeln. Nach dererlei Unfug, kann man der Datenschicht, dann ein verändertes Benutzer-Objekt übergeben, bei dem das Passwort ein MD5-Hash ist und es persistieren. Viel interessanter ist das Thema Formulargenerierung an sich. Hier muss man vor allem das Problem der Gestaltung in HTML sauber lösen. Es ist nicht nur wichtig, die Felder in der Reihenfolge sortierbar zu machen, sondern auch die Anordnung per se muss x-Browser-kompatibel, ... sein.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Referenzen auf Objekte innerhalb eines Arrays | PHP-Fortgeschrittene | 6 | 31.08.2009 17:06 | |
| [Erledigt] objekte mit bilddaten serialisieren | lumo | PHP Tipps 2008 | 1 | 17.07.2008 12:25 |
| [Erledigt] Objekte übergeben | Felix | PHP Tipps 2008 | 23 | 18.06.2008 12:21 |
| Objekte zur Laufzeit Vererbung anhängen | Zergling-new | PHP-Fortgeschrittene | 8 | 17.11.2007 17:31 |
| Objekte aus Klassenbibliothek zur Verfügung stellen | ecomeback | PHP Tipps 2008 | 8 | 14.10.2007 16:11 |
| 2 AJAX Objekte | GSJLink | HTML, Usability und Barrierefreiheit | 6 | 15.08.2007 16:05 |
| Objekte | moose | PHP Tipps 2006 | 13 | 29.07.2006 16:18 |
| Rekursives durchlaufen meiner Objekte | GELight | PHP Tipps 2006 | 2 | 01.07.2006 23:21 |
| [Erledigt] Objekte vergleichen | PHP-Fortgeschrittene | 4 | 08.12.2005 16:20 | |
| objekte und klassen | notyyy | PHP Tipps 2005-2 | 2 | 24.10.2005 17:44 |
| Objekte | PHP Tipps 2005-2 | 12 | 09.10.2005 18:20 | |
| [Erledigt] Verständnisfrage OOP - Objekte in MySQL Datenbank schreiben? | PHP Tipps 2005 | 2 | 19.05.2005 21:40 | |
| Ganze Objekte an Script weitergeben | dreamingof8a | PHP Tipps 2004-2 | 6 | 23.11.2004 12:17 |
| [Erledigt] Referenzen auf Objekte | PHP-Fortgeschrittene | 2 | 17.08.2004 11:08 | |
| Anonyme Objekte? | PHP-Fortgeschrittene | 18 | 25.07.2004 22:19 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| zend framework reihenfolge filter validator, prüfer und filter elemente formular |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.