1UnitedPower: PHP Code in externer Datei

Beitrag lesen

Hakuna matata!

Prinzip: statt einer statischen JS-Datei wird ein Template über den Loader gezogen.

Das sollte man tunlichst vermeiden, auf diese Weise erzeugt man eine unheimliche enge Kopplung zwischen serverseitiger und clientseitiger Logik, die zu unwartbarem Code führt. Zudem hat PHP gar nicht die Werkzeuge, um ordentlichen JavaScript-Code zu erzeugen, es fehlen jegliche Funktionen für die kontextgerechte Kodierung von JavaScript-Code-Fragmenten, von einer programmatischen API zum Erzeugen von JavaScript-Syntax ganz zu schweigen.

Besser ist, man beschränkt sich auf ein vordefiniertes Subset von JavaScript, und da guckt JSON schon um die Ecke. JSON hat zudem den Vorteil, das es unabhängig von einer Programmiersprache ist (auch wenn der Name das nicht vermuten lässt). Jede ernstzunehmende Programmierumgebung bietet JSON-Unterstützung an.

Außerdem ist die Lösung viel simpler gestrickt, ein knappes Beispiel:

json_api.php

<?php  
header('Content-Type: application/json');  
echo [link:http://de2.php.net/manual/en/function.json-encode.php@title=json_encode]( array( "eigenschaft" => "wert" ) );

Das ergibt folgendes JSON-Objekt:

{  
   "eigenschaft" : "wert"  
}

Und in JavaScript kann das mit einem AJAX-Request einfach gelesen werden:

script.js

var request = new XMLHttpRequest();  
request.open("get","json_api.php");  
request.send();  
request.addEventListener("load", function ( event ) {  
  
   var repsonse = event.target.response;  
  
   // In response steht dann exakt oben gezeigtes JSON-Objekt.  
  
});

Auf diese Weise hat man eine saubere Trennung der Verantwortlichkeiten. Das ist auch die am weitesten verbreitete Lösung, die jeder erfahrene Webentwickler auf Anhieb verstehen wird.

--
“All right, then, I'll go to hell.” – Huck Finn