dedlfix: Validierung: preg_match() oder filter_var() oder eigene Klasse?

Beitrag lesen

Tach!

Die Klasse hast Du doch schon, nämlich die Klasse welche das Modell beschreibt. Und eine Instanz dieser Klasse hat Methoden, z.B. eine Methode womit HTTP Request Parameter geparst werden. Qualifiziere Letztere so, dass sie in der Lage ist, Benutzereingaben, die ja Request Parameter sind, passend zum Modell zu validieren.

Kann man machen. Funktioniert auch. Doch dann hat man eine Klasse, die sich am Ende um viele Dinge zu kümmern hat. Diesen Weg geht man heutzutage nicht mehr so gern. Stattdessen separiert man lieber die Aufgaben und erstellt spezialisierte Klassen, die sich um eine einzige Aufgabe kümmern. Dass das Model wissen muss, welche Daten valide sind, kann man ja noch als dessen Aufgabe ansehen. Würde aber bedeuten, dass die Prüfroutinen eingebaut, für jede Modelklasse kopiert oder geerbt sind. Die Herausforderungen sieht man dann, wenn man eigene Validierungen für mehrere Models hinzufügen möchte und dann anfängt, von der Superklasse eine Zwischenklasse zu erben, in die man diese gemeinsame Validierung einbaut, und die man dann beerben kann. Sieht am Anfang vielleicht noch ganz schnuckelig aus, aber kann auch in Wildwuchs enden.

Warum aber soll das Model Ahnung von HTTP-Requests haben? Und wieviel Ahnung von der Welt soll es noch haben, wenn andere Datenquellen verwendet werden sollen?

Die Komplexität einer Anwendung aufgrund der zu erfüllenden Aufgaben hat man am Ende immer. Die Frage, ob man diese Komplexität gebündelt an wenigen Orten ansiedelt oder in kleine in sich einfacher überschaubare Einheiten aufspaltet, beantwortet man heutzutage eher auf letztere Weise.

dedlfix.