Gleicher Code im Browser / Server

8

Ich schreibe eine Web-App mit PHP und laufe in verschiedene Situationen, in denen ich ähnlichen Code auf dem Server und Browser benötige. Zum Beispiel:

  • Ich möchte Benutzereingaben validieren und auf beiden Seiten die gleichen Fehlermeldungen erzeugen.
  • Ich möchte Daten unter Verwendung bestimmter Regeln formatieren (z. B. wenn ein gegebenes Feld kleiner als 1 ist, zeige es mit zwei Dezimalstellen, sonst keine), und es erscheint unabhängig davon, welche Seite es rendert, gleich.

Es scheint, dass dies ein häufiges Problem sein sollte, da die Leute mehr Logik vom Server zum Browser bewegen. Aber gibt es irgendwelche gängigen Muster oder Bibliotheken für den Umgang damit (besonders für PHP)?

    
JW. 26.01.2010, 20:21
quelle

7 Antworten

3

Eine Lösung wäre, serverseitiges JavaScript zu verwenden. Du könntest dann große Teile des Codes teilen.

    
Skilldrick 26.01.2010 20:26
quelle
2

Interessante Frage! Soweit ich weiß gibt es 2 Möglichkeiten für PHP:

  • Verwenden Sie Ajax, um die Formularüberprüfung durchzuführen, also geschieht alles auf dem Server.
  • Es gibt Bemühungen, PHP-Funktionen zu JS zu bringen, die zumindest die Portierung erleichtern sollten: Ссылка

In Java können Sie jedoch Javascript mit Rhino ausführen.

Die anderen Dinge, die ich mir vorstellen kann, sind hässliche Hacks mit Flash- oder Java-Applets oder ein Framework wie Pyjamas.

    
Pepijn 26.01.2010 20:30
quelle
2

Sie können versuchen, haxe Sprache zu verwenden. Es könnte in js / php und sogar actionscript (flash) übersetzt werden.

    
kirilloid 27.01.2010 11:26
quelle
1

Eine Teillösung ist AJAX. Schreiben Sie beispielsweise Ihren Validierungscode einmal auf den Server und lassen Sie Ihre Formulare mit dem Server sprechen, um zu sehen, ob eine Eingabe gültig ist, und bitten Sie um eine Fehlermeldung, falls nicht.

    
Nathan Long 26.01.2010 20:26
quelle
0

json_encode und json_decode sind ein guter Anfang - die gleiche Datenquelle wie in PHP-Arrays und JSON-Objekte nach Bedarf.

Die json_encoded-Daten können über <script> tags oder ajax bereitgestellt werden, wie Sie möchten.

    
Ken 26.01.2010 20:26
quelle
0

Schnelles Validieren clientseitig (wie Pattern-Matching, Datums- und Zahlenkorrektheit) und Sicherheitsüberprüfung serverseitig.
Sie können AJAX auch für die serverseitige Validierung verwenden, aber auf diese Weise können Sie eine Lücke zwischen Benutzereingaben und Validierungsergebnissen erhalten. Verwenden Sie daher JavaScript für die schnelle und grundlegende Validierung und machen Sie eine starke PHP-Lösung.

    
NilColor 26.01.2010 20:46
quelle
0

Sie können Ссылка verwenden, um Ihren PHP-Code auf der Client-Seite auszuführen. Dies funktioniert für die meisten Funktionen in PHP.

    
Matthew FL 27.01.2010 06:10
quelle

Tags und Links