Java als Backend und PHP als Frontend verwenden

8

Es gibt bereits ein paar Beiträge zur SO-Diskussion, ob diese Architektur eine gute Idee oder eine schlechte Idee ist. Aus vielen Gründen innerhalb unseres Unternehmens, einschließlich der vorhandenen Programmierkenntnisse, haben wir uns entschieden, Java für das Backend und PHP für das Frontend zu verwenden. Unser Ziel ist etwas wie ...

Java - Modelle / Controller

PHP - Ansichten

Wir arbeiten daran, einen Prototyp der Interaktion zwischen Glassfish und Apache zu erstellen. Eine Sache, an der wir noch arbeiten, ist, wenn ein Benutzer Ссылка besucht und sich anmeldet, wird dieser Login an den Glassfish-Controller gesendet, der existiert irgendwo wie /login.java . Wir können das kein Problem machen, das Problem besteht darin, dass die Ansicht unter dieser URL gerendert wird.

Hat jemand das mit PHP oder anderen Technologien gemacht?

    
Webnet 24.08.2012, 19:23
quelle

3 Antworten

2

Es tut mir leid, das hier zu erwähnen, aber es scheint, als würde es die Dinge viel einfacher machen, nur mit einer dieser Sprachen zu bleiben. Wenn Sie PHP verwenden, um Ihrer Ansicht mehr Logik hinzuzufügen, lohnt sich ein Blick auf Geschwindigkeit . Es ermöglicht Ihnen, auf Variablen zuzugreifen und sie zu erstellen, Listen zu durchlaufen, Konditionale zu verwenden, Makros zu definieren, Methodenaufrufe aufzurufen usw. Dies scheint die Dinge viel sauberer zu machen. Es ist jedoch normalerweise eine gute Idee zu versuchen, so viel Logik wie möglich aus Ihren Vorlagen herauszuhalten.

Wenn Sie PHP verwenden möchten, weil das erforderlich ist, würde ich vorschlagen, einen Blick auf die Verwendung von Webdiensten zu werfen, um zu kommunizieren. Sehen Sie sich die Google GSON Bibliothek an. Es ist wirklich nettes Werkzeug (auf der Java-Seite) für die Zuordnung von JSON-Objekten zu Ihrem Modell (und umgekehrt).

In Ihrem Front-End könnte es sich auch lohnen, einen Blick auf Backbone zu werfen. Es ist ein Werkzeug, das es einfach macht, Ihre Modellobjekte zu modellieren und Ereignisse an sie zu binden oder sie direkt an Felder usw. anzubinden.

    
John Kane 24.08.2012, 19:53
quelle
4
___ qstnhdr ___ Java als Backend und PHP als Frontend verwenden ___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ antwort12115788 ___

Haben Sie darüber nachgedacht, in Java einen Soap / Rest-Server einzurichten und mit PHP darüber zu sprechen? Ich denke, das wäre viel einfacher als das, was Sie erreichen wollen.

    
___ answer12115888 ___

Ich habe Erfahrungen aus erster Hand bei zwei Unternehmen gesammelt, die den Java Service Layer und den PHP Client Layer-Technologie-Stack verwenden, obwohl er nicht ausschließlich verwendet wurde. Um die Schichten klar zu trennen, wurde eine wohldefinierte JSON-REST-API erstellt, so dass jede Schicht einen Vertrag hatte, zu dem sie kodieren konnte.

Die Java-Ebene, die SpringMVC zwischen der Persistenzschicht verwendet wird, um JSON-Ansichten mit wohldefinierten Routen zu erzeugen (dh URL-Struktur), damit die PHP-Ebene %code% resources erreichen kann.

Was das Problem login betrifft, gab es eigentlich zwei Java-Dienste, einen speziell für den Login / Logout und den anderen für das reguläre Backend.

Beim Besuch von %code% wäre das eine %code% Datei. Eine Übermittlung des Logins %code% an den "Login" -Service führte zum Hinzufügen eines Session-Cookies, aber auch zu einem verschlüsselten "User-ID" -Cookie. Der verschlüsselte Cookie könnte dann verwendet werden, um den Zugriff auf die Java-Service-Schicht für das Produkt zu schützen. Jeder REST-Request von PHP nach Java hätte Zugriff auf den Cookie, und der Java-Layer könnte dann die "Benutzer-ID" entschlüsseln und auf den PHP-REST-Aufruf antworten, wenn er gültig wäre. Die Java-Schicht hätte dann Zugriff auf die reale Benutzer-ID, um benutzerspezifische Daten aus dem persistenten Speicher zurückgeben zu können.

    
___ qstntxt ___

Es gibt bereits ein paar Beiträge zur SO-Diskussion, ob diese Architektur eine gute Idee oder eine schlechte Idee ist. Aus vielen Gründen innerhalb unseres Unternehmens, einschließlich der vorhandenen Programmierkenntnisse, haben wir uns entschieden, Java für das Backend und PHP für das Frontend zu verwenden. Unser Ziel ist etwas wie ...

Java - Modelle / Controller

PHP - Ansichten

Wir arbeiten daran, einen Prototyp der Interaktion zwischen Glassfish und Apache zu erstellen. Eine Sache, an der wir noch arbeiten, ist, wenn ein Benutzer Ссылка besucht und sich anmeldet, wird dieser Login an den Glassfish-Controller gesendet, der existiert irgendwo wie %code% . Wir können das kein Problem machen, das Problem besteht darin, dass die Ansicht unter dieser URL gerendert wird.

Hat jemand das mit PHP oder anderen Technologien gemacht?

    
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ answer12115802 ___

Es tut mir leid, das hier zu erwähnen, aber es scheint, als würde es die Dinge viel einfacher machen, nur mit einer dieser Sprachen zu bleiben. Wenn Sie PHP verwenden, um Ihrer Ansicht mehr Logik hinzuzufügen, lohnt sich ein Blick auf Geschwindigkeit . Es ermöglicht Ihnen, auf Variablen zuzugreifen und sie zu erstellen, Listen zu durchlaufen, Konditionale zu verwenden, Makros zu definieren, Methodenaufrufe aufzurufen usw. Dies scheint die Dinge viel sauberer zu machen. Es ist jedoch normalerweise eine gute Idee zu versuchen, so viel Logik wie möglich aus Ihren Vorlagen herauszuhalten.

Wenn Sie PHP verwenden möchten, weil das erforderlich ist, würde ich vorschlagen, einen Blick auf die Verwendung von Webdiensten zu werfen, um zu kommunizieren. Sehen Sie sich die Google GSON Bibliothek an. Es ist wirklich nettes Werkzeug (auf der Java-Seite) für die Zuordnung von JSON-Objekten zu Ihrem Modell (und umgekehrt).

In Ihrem Front-End könnte es sich auch lohnen, einen Blick auf Backbone zu werfen. Es ist ein Werkzeug, das es einfach macht, Ihre Modellobjekte zu modellieren und Ereignisse an sie zu binden oder sie direkt an Felder usw. anzubinden.

    
___
George 24.08.2012 19:51
quelle
1

Ich habe Erfahrungen aus erster Hand bei zwei Unternehmen gesammelt, die den Java Service Layer und den PHP Client Layer-Technologie-Stack verwenden, obwohl er nicht ausschließlich verwendet wurde. Um die Schichten klar zu trennen, wurde eine wohldefinierte JSON-REST-API erstellt, so dass jede Schicht einen Vertrag hatte, zu dem sie kodieren konnte.

Die Java-Ebene, die SpringMVC zwischen der Persistenzschicht verwendet wird, um JSON-Ansichten mit wohldefinierten Routen zu erzeugen (dh URL-Struktur), damit die PHP-Ebene GET/PUT/POST/DELETE resources erreichen kann.

Was das Problem login betrifft, gab es eigentlich zwei Java-Dienste, einen speziell für den Login / Logout und den anderen für das reguläre Backend.

Beim Besuch von /login wäre das eine .php Datei. Eine Übermittlung des Logins <form> an den "Login" -Service führte zum Hinzufügen eines Session-Cookies, aber auch zu einem verschlüsselten "User-ID" -Cookie. Der verschlüsselte Cookie könnte dann verwendet werden, um den Zugriff auf die Java-Service-Schicht für das Produkt zu schützen. Jeder REST-Request von PHP nach Java hätte Zugriff auf den Cookie, und der Java-Layer könnte dann die "Benutzer-ID" entschlüsseln und auf den PHP-REST-Aufruf antworten, wenn er gültig wäre. Die Java-Schicht hätte dann Zugriff auf die reale Benutzer-ID, um benutzerspezifische Daten aus dem persistenten Speicher zurückgeben zu können.

    
andyb 24.08.2012 20:02
quelle

Tags und Links