2009-05-17 7 views
1

Gibt es in PHP irgendwelche Muster, mit denen Benutzer Formulare absenden? Ein Formular Vorlage Best Practices .. etc.Gibt es ein Formularübermittlungsmuster?

Beispiel, ich versuche, eine CRUD-Operation zu erreichen. Anfangs war ich für den Umgang mit Form-Display und form Vorlage

class Somecontroller extends Controller { 

    function form1_add() { 
    // if submit exist save it in database 
    // else 
    // display the form 
    } 

    function form1_edit() { 
    // if submit exist save it in database 
    // else 
    // display the same form 
    } 
} 

eine gleiche Funktion Was ich nicht mag .. über diese Praxis, die Anmeldung zu prüfen, ob ein vorlegen oder ob es Marke Neue Form hat dieselbe Funktion.

Ich habe darüber nachgedacht, machen zwei verschiedene Funktionen

form1_add() and form1_add_submit() 

diese Operationen zu behandeln. Aber andere Probleme erscheinen zum Beispiel, bei erfolgloser Validierung, würde ich wieder form1_add() von form1_add_submit() aufrufen müssen, um diese Validierungsfehler anzuzeigen.

Welche anderen Praktiken verwenden Menschen für diese Art von Operation? Gibt es dafür spezifische Muster?

Antwort

1

Das allgemeine Prinzip, wie bei jeder Programmierung, besteht darin, Ihre Funktionen so atomar wie möglich zu halten. Die Ausführung mehrerer Aufgaben innerhalb einer einzigen Funktion erschwert Ihre Arbeit und erschwert das Debuggen. Das Aufrufen von Funktionen aus anderen Funktionen ist eine vollkommen gute Idee und wird zumindest Ihren Code leichter verständlich machen.

In Bezug auf ein bestimmtes Beispiel, ich trennen immer von Anzeige und Formular Einreichung/Validierung voneinander, weil sie völlig unterschiedliche Funktionen sind. Wenn Sie eine 'schöne' Validierung wünschen, sollten Sie vielleicht JavaScript auf dem Formular selbst verwenden und dann nur eine Liste von 'Fehlern' mit PHP anzeigen, direkt über dem Formular, wenn die Formularübergabe immer noch nicht mit der Eingabe übereinstimmt Benutzer, um sie zu korrigieren).

+0

Dies ist sinnvoll. Ich vermute. Ich bin einfach beeindruckt von der FormsAPI von drupal. Ich frage mich, ob es etwas Ähnliches gibt. Danke für die Kommentare. – bibstha

+0

Finden Sie, was für Sie funktioniert, und machen Sie Ihren Code am einfachsten zu debuggen und damit zu laufen. Wenn das eine Art von Rahmen ist, großartig. Wenn es nur dein eigener Code ist, auch großartig! –

0

Mir ist keine "Best Practice" oder "Standardmethode" bekannt.

Persönlich verwende ich externe Funktionen, um damit umzugehen.
Wenn Benutzer gesendet, dann rufe ich userSubmited(), und so weiter. Ich teile diese auch in separate Dateien auf, damit ich die mit dem Formular sauberer halten kann (nur die Kopfzeile, etc).

Es könnte auch eine gute Idee sein, den Formularverarbeitungsteil in einer Datei und die UI-Anzeige in einer anderen Datei zu behalten, um dies noch sauberer zu halten.