Thread Datenvalidierung mit Transaktion - Wie am besten Ablauf verketten?
(10 answers)
Opened by sid burn at 2009-05-29 14:17 2009-05-29T14:39:28 pktm Einiges. :) Quote Das ist bereits das erste Problem. Du musst die ganzen profile und die Checks erstellen. Data::FormValidator ist für mich eher ein Framework für die Validierung. Aber es selber validiert nicht viel. Ich möchte auch die ganzen Validierungen nicht ständig neu erstellen. Ich möchte ein einfaches Modul haben das generell Daten validiert. Ist die übergabe ein INT?, POSINT?, in einem wertebereich? ist es eine E-Mail Adresse? Eine Domain? Ein Datum? All diese Checks musst du bei Data::FormValidator selber erstellen. Ich möchte etwas haben womit der Nutzer alle diese fertigen Validierungen einfach nur aufrufen kann. Es ist also bereits eine fertige Sammlungen von allen Möglichen Validierungen die es gibt. Ansonsten sollen am ende natürlich auch Filter und Transformationen gehen. z.B. ein Filter der Werte vor dem check bearbeitet. z.B. Whitespace zeichen vorne und am ende entfernen. Und unter Transformation meine ich sowas wie bei Moose "Coercion" das ich sagen kann, validiere es und wenn es ein Datum ist mache daraus ein DateTime objekt etc. Alles schon fertig gebaut, einfach anwendbar ohne das man die hälfte selber coden muss! Und "einfach" ist auch so ein Punkt, ich finde Data::FormValidator nicht einfach. Es stehen da knapp 10 Seiten Doku und man sieht nichtmal wie man schnell prüft ob ein Wert eine E-Mail adresse ist. Ansonsten möchte ich eine allgemeine Validierung haben, die z.B. nicht an Web gebunden ist. Praktisch also eine unterlage die andere Systeme nutzen können. Die Checks selber implementiere ich nicht alle neue sondern möchte ebenfalls fertige Module nutzen wie. "Regexp::Common", "Email::Valid" etc. allerdiengs werde ich das so abstrahieren das alles über ein "einheitliches Interface" ansprechbar ist. Data::FormValidator bietet dir da nichts. Du musst die Module weiterhin so nutzen alle mit einen eigenen Interface. Alle Fehler "müssen" Exceptions werfen. Ich baue mitlerweile alles so auf das bei Fehler Exceptions kommen. Da man damit sehr viel sauberer Programmieren kann und Fehler einem nicht "entfliehen". Das man eine eigene Code Referenz angeben kann ist toll. Ich möchte aber nicht erst einen Haufen Code schreiben damit dies geht, sondern es sollte von Haus aus gleich so sein. Stichpunkt einfachheit. Ansonsten geht es mir nicht nur darum einfach nur Exceptions zu haben, sondern die Exceptions müssen alle nötigen Informationen enthalten. Den der Punkt ist. Validierung und Exception Handling passieren nicht an den gleichen Orten. z.B. in einem Modul das Daten in die Datenbank schreibt prüfst du vor dem schreiben in der Datenbank ob die Werte Valide sind. Allerdiengs fängst du die Fehler dort nicht ab. Die Fehler fängst du an einer höheren ebene ab, nämlich beim aufruf der Funktion in die datenbank zu speichern (oder sogar noch woanders). Data::Formvalidator ist so aber nicht gebaut. Data::FormValidator validiert aber die daten wo etwas invalide ist rufe ich dann über das objekt auf, das objekt was ich in einem anderen Scope aber gar nicht mehr habe. Weiterhin sind mir die Daten die es zurükliefert zu mau. z.B. invalids() liefert nur die Feldnamen zurück die invalide waren. Da das validieren und checken aber an ganz anderen Stellen passiert weiß ich nichts beim abfangen welche Daten eingegeben wurde vom nutzer. Sondern all diese Daten müssen in den Exception Objekten übergeben werden. Weiterhin sollen Die Checks auch immer Konfigurierbar und anpassbar sein. Bisher habe ich kein Modul gesehen das mir alle diese Punkte erfüllt. Ich bin aber noch in der Plannungsphase des Moduls. Last edited: 2009-05-29 17:45:25 +0200 (CEST) Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|