| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Schau dir vielleicht mal im Zend Framework die Umsetzung mit Zend_Form + Zend_Validate an, alle Validatoren haben standard-messages, in Kombination mit Zend_Translate hat man da mit ein paar Zeilen auch Übersetzungen ohne händisch am Code was zu ändern (nur über ne Sprachdatei) und das lieses sich theorhetisch ähnlich auch umsetzen um eine zentrale Klasse zu basteln die für die Texte zuständig ist. Ansonsten kannst du natürlich auch die Formen in extra Datei erstellen, beim Zend Framework sieht das so aus dass man nen init-methode hat die man überschreiben kann: dann macht man im code nur noch ein $form = new FooForm(); und hat die Klasse mit allen Validatoren und soweiter. PHP-Code:
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Hallo MaMo-Net, vielleicht interessiert dich auch der neue Ansatz des APF zum Thema Formular-Validierung. Hier wurde für das neue Release eine Trennung von Validator und zu validierendem Objekt (ebeso für das Thema Filter) nach dem Observer-Pattern eingeführt. Für die Ausgabe der Validierungs-Texte gilt hier das Listener-Prinzip, sprich die Ausgabe-Repräsentation registriert sich als Listener beim Formular-Element, das wiederum von einem externen Validator (Observer) validiert wird. So lassen sich i18n Sprachtexte sehr gut wiederverwenden. Du arbeitest im Vergleich zum Zend-Framework nicht mit einer expliziten PHP-Klasse, sondern definierst über den HTML/XML-Code dein Formular mit allen seinen Komponenten (Formular-Felder, Messages, Validatoren, Filter, ...) und erreichst über diese lose Kopplung eine sehr gute Wiederverwendbarkeit der Einzel-Komponenten. Die Zuordnung der Sprach-Werte findet jedoch auch beim APF über Keys statt, die in einer Sprach-Sektion (z.B. "[de]") stehen. Beispiele für diese Art der Formular-Definition findest du im Kapitel Aufbau von Validatoren und Ausgabe von Validator-Fehlermeldungen.
__________________ 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! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Nur um das mal kurz zu erwähnen, weil ich letztens mir auch gedanken über die ganze Validierung/Filterung in Javascript gemacht habe. Ich bin für mich zu dem Schluss gekommen den overhead das ganze komplett via ajax zu lösen hinzunehmen, weil es für mich schon etwas gegen DRY verstößt in 2 Sprachen das gleiche zu erfinden inklusive tests etc. Wenn man die gleiche Validierung mit PHP und JS braucht hat, hat man in der Praxis immer die doppelte Menge Code für diesen Bereich. Wenn man neben Validatoren noch Filter nutzt, hat man auch nochmal die ganzen Filter die man auch noch in JS basteln muss. Wenn man also irgendwann einen neuen Validator oder Filter braucht muss man das ganze dann in JS und PHP entwickeln und testen und vor allem schauen dass es auch in allen Fällen 1:1 immer die gleichen Ergebnisse bringt und man muss irgendwie dann noch die Fehlermeldungen zwischen PHP und Javascript sharen, da kann beispielsweise schon unterschiedliches Verhalten der Regex-Engines von PHP und Javascript Unterschiede bringen und der fakt dass Javascript manche dinge in regex nicht unterstützt die PHP mittels preg_* kann, utf-8, etc. Also für mich war das ganze im Endeffekt zu viel Overhead auch im Hinblick auf den Aufwand das ganze zu testen und so. Da ich das Zend Framework nutze, habe ich mir deshalb das hier angeschaut: Live Validierung mit dem Zend Framework und jQuery | Kristof Dreier und baue das dann noch etwas aus (Klassen-basierte aktivierung, spinner um auch eventuelle längere validierungsprozesse zu verdeutlichen, einzelfeld-validierung... etc) so kann ich jederzeit einfach einen Filter oder Validator in PHP schreiben und hinzufügen, kein zusätzlicher Code für das JS, Nachteil ist halt der Overhead dass jegliche Validierung immer auch einen http-request bedeutet, womit ich aktuell leben kann, ausserdem erlaubt es mir auch ohne aufwand einfach fremde Validatoren die jemand für ZF-Applikationen geschrieben hat zu nutzen ohne passenden JS-Code zu nutzen.
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PHP: Formular Generator | Zergling-new | Tutorials | 16 | 06.07.2010 03:14 |
| Ergebnis von Formular in iFrame zeigen | PsychoEagle | HTML, Usability und Barrierefreiheit | 2 | 22.07.2009 21:07 |
| Problem mit Formular, Daten an datenbank senden | Aurec | PHP Tipps 2008 | 11 | 20.11.2008 18:17 |
| Formular Pflichtfelder für Frontpage Formular erstellen | Caruso | JavaScript, Ajax und mehr | 5 | 21.06.2008 09:17 |
| Wert aus Textfeld in neues Formular übernehmen (kein Submit) | PsychoEagle | HTML, Usability und Barrierefreiheit | 9 | 02.01.2007 14:51 |
| formular includen | samspa5 | PHP Tipps 2006 | 13 | 18.03.2006 11:37 |
| [Erledigt] Formular in Formular | HTML, Usability und Barrierefreiheit | 4 | 19.10.2005 12:18 | |
| [Erledigt] PHP Formular ~~wichtig~~ | PHP Tipps 2005 | 27 | 29.05.2005 19:38 | |
| [Erledigt] Im Formular user abfragen? | Datenbanken | 3 | 06.01.2005 10:51 | |
| [Erledigt] PHP Formular - Daten an nächsten Schritt weiter geben - Wie? | PHP Tipps 2005 | 14 | 02.01.2005 20:05 | |
| [Erledigt] Daten in einem Formular ausgeben und ändern | PHP Tipps 2004-2 | 7 | 07.12.2004 17:22 | |
| Wie implementiere ich mein Email Formular? | PHP Tipps 2004-2 | 2 | 14.11.2004 17:02 | |
| Brauche PHP Formular | Beitragsarchiv | 9 | 16.08.2004 16:23 | |
| [Erledigt] Formular mit Daten werden auf anderer Seite zusammengefasst | PHP Tipps 2004 | 4 | 15.08.2004 15:44 | |
| [Erledigt] Daten in neuem Formular anzeigen | PHP Tipps 2004 | 6 | 21.07.2004 10:44 | |