HighDots Forums  

PHP mit Templates + Ajax

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss PHP mit Templates + Ajax in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
vogel@djd.de
 
Posts: n/a

Default PHP mit Templates + Ajax - 03-13-2008 , 09:35 AM






Hallo,

ich betreue mehrere Webseiten in unserem Haus. Alle Auftritte basiere
auf der gleichen Idee. Zu jeder einzelnen Seite gibt es eine .PHP und
eine .TPL Datei. In der PHP befindet sich die Logik in der TPL das
ganze HTML-Auszeichnungszeug. Dann wird ein Template geparsed und
Platzhalter mit den Daten gefüllt. Dadurch hab ich eine Trennung von
Logik und Design. Weiß nicht ob jemand das PHPBB noch kennt, aber
diese Templatetechnik habe ich auch.

Nun möchte ich aber anfangen Ajax in meine Anwendungen zu integrieren.
Wie Ajax funktioniert hab ich mir schon teilweise angeeignet, aber wie
schaffe ich weiterhin die strikte Trennung zwischen Logik und Design
umzusetzen? Eigentlich müsste ich den JS-Code ja in meine Templates
packen aber das widerstrebt mir sehr. Hat das schonmal jemand
realisiert oder hat eine Idee wie ich das machen kann?

Danke und viele Grüße
Stefan

Reply With Quote
  #2  
Old   
Oliver B. Warzecha
 
Posts: n/a

Default Re: PHP mit Templates + Ajax - 03-13-2008 , 06:38 PM






vogel (AT) djd (DOT) de wrote:
Quote:
Nun möchte ich aber anfangen Ajax in meine Anwendungen zu integrieren.
Wie Ajax funktioniert hab ich mir schon teilweise angeeignet, aber wie
schaffe ich weiterhin die strikte Trennung zwischen Logik und Design
umzusetzen? Eigentlich müsste ich den JS-Code ja in meine Templates
packen aber das widerstrebt mir sehr. Hat das schonmal jemand
realisiert oder hat eine Idee wie ich das machen kann?
Wenn Du den Code partout nicht in die Templates packen willst,
gibt es verschiedene Möglichkeiten.
a) Du packst ihn in separate Javascript-Dateien. Die PHP-Datei
"weiss" ja, welche Javascript-Dateien sie braucht. Ich habe
jetzt hier z.B. eine Application-Singleton-Klasse definiert,
in die eine PHP-Datei dann Anforderungen über eine Methode
addScript() machen kann. Wie weit man das dann formalisiert,
ist einem selber überlassen. Der Masterpagecontroller - oder
wie man die Klasse auch nennen will - fügt dann die gewúnschten
Skripte in den head in script-Tags ein, sortiert Dubletten aus
undsoweiter... Ob man jetzt eine Engine, die Skriptabhängigkeiten
berücksichtigt, dazu schreibt, muss man selber wissen. :-)

b) Eine andere Option, wo ich über Prototype (jaja, Thomas ;-)
drauf gekommen bin, das wertet AJAX-Antworten vom entsprechenden
MIME-Typ (text/javascript und Konsorten) direkt mit eval aus.
Das kann man natürlich auch in seiner eigenen Bibliothek
implementieren und so das AJAX-Backend Antworten in Javascript
geben lassen. Wenn man das irgendwie formalisiert (was ich
noch nicht gemacht habe), kann das sehr mächtig werden.

Persönlich finde ich das mit dem Code in den Templates nicht
ganz so wild, man kann es aber natürlich mit Methode a) strikt
getrennt halten. Ich finde es aber in Zusammenhang mit Methode
b) auch sehr interessant, bestimmte quasi Interfaces zu
definieren, wo ich dann über standardisierte Javascript-Methoden
auf der Seite die Antworten auf AJAX-Aktionen definieren
kann, z.B. doInsertOk() und doInsertFail(), wenn man einer
DB-Tabelle ein Element hinzufügt. Die Methoden gibt es
dann auf jeder Seite, aber sie sind halt an das Template
angepasst und machen unterschiedliche Sachen.

Ja, das Beispiel kann man auch über den http-Responsecode abhandeln,
aber diese Methode ist halt noch um einiges mächtiger.

(Ich denke z.B. mal wieder darüber nach, wie man PHP-Exceptions
zum Javascript effektiv und sinnvoll forwardet.)

Hoffend, ein paar Anregungen gegeben zu haben,
OBW


Reply With Quote
  #3  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: PHP mit Templates + Ajax - 03-14-2008 , 06:51 PM



Oliver B. Warzecha wrote:
Quote:
b) Eine andere Option, wo ich über Prototype (jaja, Thomas ;-)
drauf gekommen bin, das wertet AJAX-Antworten vom entsprechenden
MIME-Typ (text/javascript und Konsorten) direkt mit eval aus.
Das kann man natürlich auch in seiner eigenen Bibliothek
implementieren und so das AJAX-Backend Antworten in Javascript
geben lassen. Wenn man das irgendwie formalisiert (was ich
noch nicht gemacht habe), kann das sehr mächtig werden.
Diese Idee ist natürlich ebenfalls nicht auf Stephensons Mist gewachsen,
sondern wurde bereits zuvor implementiert. Jedoch bleibt die Auswertung von
Anweisungen mit eval() bekannt fehlerträchtig, dafür wurde eval() nicht
eingeführt. Einigermassen zuverlässig funktioniert nur die Auswertung von
Ausdrücken; eben das hat Douglas Crockford mit JSON formalisiert.


PointedEars


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.