myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

Ratschläge für die Kommunikation zwischen PHP und HTML/JavaS***** einer SPA

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 27.11.13, 22:47   #1
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard Ratschläge für die Kommunikation zwischen PHP und HTML/JavaS***** einer SPA

Guten Tag mygullyianer,

lange Zeit habe ich nativ Programmiert (C / C++) oder mit Java/C#. In den letzten 4-5 Monaten war ich an einem großen Projekt beteiligt, wofür wir eine Web-Applikation mit Offline-Funktion, Mobile-Device-Detection, Responsive-Webdesign und mit allem drum und dran programmiert haben.
Als Werkzeuge hatten wir natürlich HTML5/CSS3-Features, JavaS***** mit JQuery und diversen Plugins und das .Net-Framework. Das ganze war eine ASP.NET MVC 4 Applikation.
Aber das ist Offtopic.

Die Vorteile einer Web-Applikation haben mich überzeugt. Nun ich will ich etwas privates realisieren mit PHP.
Das ganze soll eine Single Page Application werden [SPA].
Habe gemerkt, dass der Austausch von Daten zwischen Client und Server mit Ajax ziemlich umständlich ist. Es geht mir hauptsächlich darum dass ich Daten an den Server schicken muss (egal ob per POST oder per GET) und auf die Daten in meinen PHP-Skripten zugreifen kann. Wenn ich jetzt 20 verschiedene Funktionen habe von der Clientseite, so bräuchte ich 20 PHP-Skripte jeweils für eine Funktion. (Ich könnte natürlich die Daten Abfragen und dann dementsprechend die jeweilige Funktion aufrufen, aber ich weis nicht ob das der richtige Weg ist)

Als Beispiel:
Ich habe eine Liste, will etwas Filtern. Nun sende ich per Ajax Daten an ein PHP-Skript. Der responsed mir etwas und ich verarbeite das ganze mit JavaS***** weiter.
Nur stört es mich, das ich mein PHP-Skript explizit nur für diese Funktion anpassen muss.

Gibt es Wege, um das ganze ein bisschen zu vereinfachen, vllt. mit einer REST-API?
Nur wüsste ich nicht, ob ich bei Web-Hoster ein RESTful-Web-Service implementieren kann, da, soweit ich es mitbekommen habe, teilweise an der Apache-Config gefrickelt werden muss. (Es kann sein, dass ich falsch liege, klärt mich auf :>)

PHP ist ziemlich Neuland für mich. Wüsste nicht welche Frameworks ich nutzen soll, kann (,muss?).
dustail ist offline   Mit Zitat antworten
Ungelesen 28.11.13, 17:06   #2
NetWebs
Banned
 
Registriert seit: Aug 2012
Beiträge: 223
Bedankt: 68
NetWebs ist noch neu hier! | 0 Respekt Punkte
Standard

Daten per GET schicken?

Für dein Vorhaben haben sich AJAX, REST bewährt. PHP bietet genug Möglichkeiten um RESTful Webservices zu generieren. Wenn es nur um Daten und CRUD geht, so ist dies in wenigen Minuten fertiggestellt.
Von PHP halte ich aber wenig.

Was willst du denn genau machen? Abhängig davon kann REST die falsche Wahl sein!
NetWebs ist offline   Mit Zitat antworten
Ungelesen 28.11.13, 23:19   #3
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard

Natürlich ist AJAX die erste Wahl. Mir ging es um den Aufbau und wie ich es strukturieren werde. Könnte ja genauso auf JQuery verzichten und nur mit JavaS***** nutzen. Nur wer macht das schon? (Außer es gibt Beschränkungen).

Habe noch ein bisschen PHP angeschaut, werde nun das SLIM Framework nutzen. Konzept ist auch schon fast fertig.

Was dann? Als Privatperson werde ich mir bestimmt kein IIS-Webserver anschaffen.
dustail ist offline   Mit Zitat antworten
Ungelesen 29.11.13, 06:23   #4
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

Versteh dich nicht.
Aus deinem ersten Beitrag ist nicht ersichtlich, dass Du die Fragen um die Architektur machst.

Aber selbst wenn...was soll man grossartig zur Architektur sagen? Was für ein Konzept? Die genannten Technologien wirst Du doch hoffentlich dafür einsetzen wofür sie gedacht sind! Alles andere wäre ja totaler quatsch.

Wie wäre es mit Java EE?
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 29.11.13, 08:58   #5
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard

Naja versuch ich es nochmal:

Zitat:
Habe gemerkt, dass der Austausch von Daten zwischen Client und Server mit Ajax ziemlich umständlich ist. Es geht mir hauptsächlich darum dass ich Daten an den Server schicken muss (egal ob per POST oder per GET) und auf die Daten in meinen PHP-Skripten zugreifen kann.
Sagt eigentlich alles. Nun mal ein Beispiel. Ich habe eine Datenbank und will Daten abrufen. Sagen wir mal ich will die Abfrage durch ein Klick auf ein Button machen, dann schreibe ich mit JQuery.

PHP-Code:
$("#meinbutton").click(function() {
    
// Per Get Daten abrufen und bei Erfolg ein Alert ausgeben
   
$.when($.get(
        
"db_abfrage.php",      // Ich muss mein Request an diese Datei schicken
        
{werteins"eins"wertzwei"zwei"}  // Meine Daten die ich Sende
    
)).done(function(response){
        
alert(response);        // Hier alert ich das was ich vom Server bekomme
    
});
}); 
So nun muss ich entweder eine Datei schreiben extra NUR für diese Abfrage
-> Ich habe für jede funktion in javas*****, bei der ich den Server brauche, eine Datei

ODER: Ich sende ein Wert an die db_abfrage.php mit, welche Funktion aufgerufen werden soll und muss dann im PHP S***** die Daten auslesen und mit switch / if den String vergleichen und dann entsprechend die Funktion aufrufen
-> Irgendwann mal eine riesengroße Abfrage eines String, nur damit ich sagen kann, welche Funktion aufgerufen werden soll.

So nun jetzt das Problem: Ich kann mit JavaS***** nicht sagen, was für eine PHP Funktion aufgerufen soll, ich kann nur eine Datei ausführen lassen.
Dann brauche ich für jede Funktion die ich in JavaS***** aufrufen will, eine PHP-Datei,
oder ich sende ein String mit und muss in einer Datei prüfen mit Verzweigungen, welche Funktion aufgerufen werden soll.
dustail ist offline   Mit Zitat antworten
Ungelesen 29.11.13, 11:51   #6
NetWebs
Banned
 
Registriert seit: Aug 2012
Beiträge: 223
Bedankt: 68
NetWebs ist noch neu hier! | 0 Respekt Punkte
Standard

Du hast von REST gesprochen...jetzt willst du Funktionen oder Skripte aufrufen.
DAS macht keinen Sinn. Daher ist auch für mich unschlüssig was Du machen oder haben willst.

Mit Ajax eine REST-API aufzurufen ist sehr einfach...erst recht wenn du die API selbst schreibst.

Ich vermute mal, dass du irgendwas falsch verstanden hast (REST?), und uns damit verwirrst.
Was willst du also genau machen?
Prozesse aufrufen oder Daten abholen/senden?
NetWebs ist offline   Mit Zitat antworten
Ungelesen 29.11.13, 16:00   #7
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard

Ja ich habe von REST gesprochen, ich hab das Beispeil nur gebracht,damit ich zeigen kann, was mich gestört hat.

Ich verwende jetzt SLIM, es hat sich alle erledigt. Danke totzdem noch mal für deine Zeit
dustail ist offline   Mit Zitat antworten
Ungelesen 29.11.13, 17:47   #8
NetWebs
Banned
 
Registriert seit: Aug 2012
Beiträge: 223
Bedankt: 68
NetWebs ist noch neu hier! | 0 Respekt Punkte
Standard

@Dustail

Funktionen mit REST aufrufen ist absoluter Unsinn!
REST ist Ressourcen-orientiert...das hast du anscheinend nicht verstanden.

Wenn du Funktionen aufrufen willst, dann nimm SOAP.

P.S. Es lohnt sich Kritik anzunehmen...dann läuft man nicht in Gefahr absoluten Quark zu programmieren
NetWebs ist offline   Mit Zitat antworten
Ungelesen 30.11.13, 21:01   #9
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard

Ich nehme gerne gut begründete Kritik an, wüsste jetzt nicht, wie du darauf kommst, dass ich es nicht tue!

Dein Tipp mit SOAP ist gut, viele dank dafür!
dustail ist offline   Mit Zitat antworten
Ungelesen 01.12.13, 13:03   #10
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard

Ich habe eine Single Page Application, habe eine Datenbank, und einen Apache Server (der vom Web hoster).

Anfangen tut es beim Login.
-Eine <form> will ich nicht erstellen, da beim Submit auf die neue Seite weitergeleitet wird, auf das ich im action=""-Attribut verwiesen haben. (Gut, man kann es mit preventDefault unterbinden)
-Wenn ich per Ajax und GET/POST daten an den Server schicke, muss ich eine URL angeben -> z.B. login.php. Jetzt habe ich schon eine Datei für nur eine Aufgabe.

Was ich will: All meine PHP-Funktionen, egal ob login oder eine datenbank abfrage, in sehr wenigen Dateien unterbringen.

Jetzt könnte ich mit Ajax und einem JSON-Wertepaar (z.B. "function" : "login") Werte an diese PHP-Datei senden, müsste aber in dieser PHP-Datei diesen Wertepaar abfragen
PHP-Code:
if ("function" == "login") -> führe login-routine aus 
Bei vielen Funktionen könnt ihr dann vorstellen wie groß und lächerlich diese abfrage wird.
dustail ist offline   Mit Zitat antworten
Ungelesen 01.12.13, 16:35   #11
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von dustail Beitrag anzeigen
Jetzt könnte ich mit Ajax und einem JSON-Wertepaar (z.B. "function" : "login") Werte an diese PHP-Datei senden, müsste aber in dieser PHP-Datei diesen Wertepaar abfragen
PHP-Code:
if ("function" == "login") -> führe login-routine aus 
Bei vielen Funktionen könnt ihr dann vorstellen wie groß und lächerlich diese abfrage wird.
@Dustail

1. Du wolltest zunächst REST einsetzen. Mehrere haben die hier doch mitgeteilt, dass REST für diesen Einsatz (Aufruf von Funktionen) völlig ungeeignet ist.
2. Hat zwar ein wenig gedauert bist du das angenommen hast, aber dass SOAP für diesen Zweck eventuell geeigneter ist (schwer zu sagen, wenn man den Gesamtplan nicht kennt) hast du wohl eingesehen.
3. Jetzt hatte man das Gefühl du willst SOAP einsetzen, stattdessen ruft du URLs mit Parametern(?) auf!? Wo ist das Envelope, XML?

Boah, sorry. Aber das ist alles total konfus was du schreibst. Beim besten Willen...so ist es unmöglich dir zu helfen. Dir fehlt klipp und klar das Grundwissen...

Edit: über mir steht im Grunde schon alles.

P.S. Dein verständnis hinkt gewaltig, dustail. amazon hat auch eine REST-API...meinst du für jeden einzelnen Artikel den man über REST abrufen kann, gibt es eine serverseitige Datei?
Das würde ja bedeuten, dass es Millionen Dateien mit Code geben würde! Denk man drüber nach...
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 01.12.13, 17:09   #12
NetWebs
Banned
 
Registriert seit: Aug 2012
Beiträge: 223
Bedankt: 68
NetWebs ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von dustail Beitrag anzeigen
Bei vielen Funktionen könnt ihr dann vorstellen wie groß und lächerlich diese abfrage wird.
Wenn am Ende etwas großes und lächerliches entsteht, dann ist das ein deutliches Indiz, dass hier schlecht oder falsch programmiert wurde...
NetWebs ist offline   Mit Zitat antworten
Ungelesen 01.12.13, 21:57   #13
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard

Bei dem Projekt wurde auch kein php genutzt sondern eine asp.net application. Ich war am Frontend beteiligt. Für die Funktionen wurden jedoch mittels ajax und Post / get benutzt und es waren URLs angegeben, woraufhin im backend dann mit C# Code Funktionen aufgerufen wurden. Ich kann nicht wissen dass das schlechter Design ist.

Ich habe gar nichts genutzt. Ich habe gefragt, wie man am besten so eine Seite aufbaut, bevor ich anfange irgendwas zu implementieren. Im internet bin ich hierbei auf REST gestoßen.

Ich hatte im Kopf, URLs auf Funktionen zu routen, jedoch ohne Parameter. Die Daten werden dann mit GET / POST übergeben.

Bevor ihr mich hier runterzieht, könntet ihr Hinweise, Referenzen geben, wie man so etwas aufbaut. In meinem ersten Beitrag habe ich bereits erwähnt, das php für mich Neuland ist.
dustail ist offline   Mit Zitat antworten
Ungelesen 01.12.13, 22:22   #14
dustail
Newbie
 
Benutzerbild von dustail
 
Registriert seit: Mar 2009
Beiträge: 83
Bedankt: 45
dustail gewöhnt sich langsam dran | 35 Respekt Punkte
Standard

Zitat:
Zitat von HababaX Beitrag anzeigen
1. Hier zieht dich keiner runter. Das nennt man Kritik!
Es waren auch nicht alle bzw. alles gemeint.

Aber Beiträge wie
Zitat:
Zitat von NetWebs Beitrag anzeigen
Wenn am Ende etwas großes und lächerliches entsteht, dann ist das ein deutliches Indiz, dass hier schlecht oder falsch programmiert wurde...
sind Sinnlos.


Zitat:
Zitat von HababaX Beitrag anzeigen
2. Die Kritik bezieht sich darauf, dass du REST, SOAP oder was auch immer einsetzen willst
Will ich nicht, ich frage ob es Sinnvoll ist.

Zitat:
Zitat von HababaX Beitrag anzeigen
Das ist kein Hexenwerk...bemühen muss man sich nur eben selbst.
Glaube ich dir auch. Es ist mir bewusst, dass ich das Wissen dann auch selber aneigne....Nur wollte ich mal nun mal von Leuten Meinungen hören, die etwas Erfahrung haben. Es nützt mir nun mal nichts, wenn man mir sagt, dass mein Vorhaben scheiße ist.

Zitat:
Zitat von HababaX Beitrag anzeigen
4. Du willst eine Login-Funktion. Den PHP-Code zum Einloggen hast du anscheinend schon. Mit einem Webservice mit dem man diese Funktionen aufrufen kann (SOAP z.B.) machst du diese Funktion eben über HTTP verfügbar...Fertig. Da gibt es nicht viel zu erklären!
Mit so etwas kann ich nun mal Arbeiten. Ein kleines Beispiel usw..

Ich bin der Meinung, dass ich euch mein Vorhaben nicht vermitteln konnte. Mal schauen, was daraus wird.
dustail ist offline   Mit Zitat antworten
Ungelesen 01.12.13, 22:48   #15
NetWebs
Banned
 
Registriert seit: Aug 2012
Beiträge: 223
Bedankt: 68
NetWebs ist noch neu hier! | 0 Respekt Punkte
Standard

Ob es sinnvoll ist, kann man nur sagen, wenn man den Anwendungsfall kennt.
Bei der Login-Funktion ist REST verkehrt. SOAP könnte man einsetzen.

Wie gesagt, schwer dir hier genau zu helfen.

Wann etwas (Design Pattern, Architektur, Infrastruktur, etc.) sinnvoll ist, kannst nur du am besten bewerten. Wir wissen nicht was eingesetzt werden kann, was geleistet werden muss, welche Tools etc. zum Einsatz kommen und und und.
Problem bei dir ist, dass du es selbst nicht bewerten kannst, da du nicht weißt, was welche Technik leistet. Da hilft nur lesen.

Was definitiv scheiße ist, wenn man auf biegen und brechen eine Technologie einsetzen möchte, die sehr gut ist, aber völlig ungeeignet ist für das was man umsetzen möchte.
NetWebs ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.


Sitemap

().