Philipp Wunderlich: Kombination von HTML mit Serverscriptsprachen (PHP, Perl, ...)

Hi Leute,

ich hatte gestern eine interessante Diskussion mit einem Kumpel. Es ging um das generelle einbinden von dynamischen Elementen in HTML mit Hilfe von PHP, Perl, oder ähnlichen Techniken. Wie kahmen auf folgende Schemen und konnten uns nicht einigen welche dieser Möglichkeite nun der beste Weg ist.

Möglichkeit 1:

Man binden den Code einfach direkt in den HTML Code ein und probiert natürlich das ganze so übersichtlich zu gestalten wie es geht.

Beispiel:

<html>
<head>
<?
include (Dateiname);
?>
</head>
<body>
...
<?
Funktionsaufruf
?>
...
</body>
</html>

Möglichkeit 2:

Man erzeugt aus der Scriptsprache den gesamten HTML Code

Beispiel:

function CreateHeadline($Type, $String) {
echo „<H" . $Type . „>";
echo $String;
echo „</H" . $Type . „>";
}

Möglichkeit 3:

Man Arbeitet mit XML-Templates und baut die Funktionalität über eigene Tags ein, die dann durch die Scriptsprache entsprechend ersetzt werden.

Beispiel:

<H1>Eine Ueberschrift</H1>
<CreateLink type="newsarchive" key="1202200002">alte News</CreateLink>

Ich persönlich halte Möglichkeit 3 für die sauberste auch wenn dann der Aufwand so etwas zu programmieren bedeutend größer ist. Aber die Pflege und das Design sind glaub ich bedeuten einfacher.

Ich würde mich über eure Meinung sehr freuen.

btw ich hoffe ich hab es ausführlich genug erklärt :-)

cu & have fun

Philipp

  1. Hallo,

    möglichkeit 4:
    (in php ist aber auch mit jeder anderen server-script sprache möglich)

    <?php
    include('functions.php3');
    include('inc/layout.oben.inc');

    // php code zb. ausgabe aus datenbank

    include('inc/layout.unten.inc');
    ?>

    so trennt man zumindest das layout vom Inhalt, noch besser ist natürlich die komplette XML formatierung welche dann über XLS prozessor zu HTML verarbeitet wird.

    lg
    Ludwig

    1. möglichkeit 4:
      (in php ist aber auch mit jeder anderen server-script sprache möglich)

      <?php
      include('functions.php3');
      include('inc/layout.oben.inc');

      // php code zb. ausgabe aus datenbank

      include('inc/layout.unten.inc');
      ?>

      da hab ich aber wieder das problem das dort wo die datenbank ausgegeben wird auch zwangsläufig HTML Code ist - und das ist eigentlich die sache die ich vermeiden will.

      Philipp

  2. Hallo Philipp,

    Ich persönlich halte Möglichkeit 3 für die sauberste auch wenn dann der Aufwand so etwas zu programmieren bedeutend größer ist. Aber die Pflege und das Design sind glaub ich bedeuten einfacher.

    Wenn du wirklich nur mit XML & Co. arbeiten willst, mach das von mir aus. Wenn du etwas ähnliches verwenden willst, warte auf das xwebgen-Tutorial und die neue Version :). http://www.xitnalta.com/web/de/

    (Wenn du _sehr_ neugierig bist und dich ein wenig besser mit Perl auskennst, kannst du dir ja die erste Version runterladen.)

    bis nextens
    xitnalta

    1. Hi Felix,

      leider ist Perl nicht so mein Ding - ich geh da doch mehr in die Richtung PHP und Python.
      Aber das Projekt xwebgen hört sich schon sehr gut an ist ja auch vom Prinzip her die Lösung die ich bei größeren Projekte auch anstreben würde.
      Ich würde so etwas halt mit XML machen, damit das ganze auf einem Standard basiert, der sich vermutlich bald sehr durchsetzen wird.

      Aber wie schon gesagt, xwebgen find ich schon sehr spannend und ich werd auch immer mal wieder auf die Page schauen, was dort so alles passiert.

      cu & have fun

      Philipp

  3. Hallo

    ich glaube, ich habe die 3.Möglichkeit immer noch nicht so ganz verstanden.
    Ich habe es so verstanden:
    Du hast ein Dateisystem mit XML-Dateien. Wenn jetzt ein Request an dem Webserver kommt, dann leitet der ihn an ein serverseitiges Skript weiter, welches die XML-Datei (samt selbst definierter Tags) verarbeitet und dann als HTML (sonst versteht es der Browser ja nicht) weiterschickt.
    Richtig?

    Solch ein Weg ist, aufgrund des schon erwähnten Aufwandes, eigentlich nur dann sinnvoll, wenn mehrere Ausgabeformate (nicht nur HTML) unterstützt werden sollen (z.B.WML). Ansonsten gibt es praktikablere Möglichkeiten, wenn es lediglich darum geht die Logik vom Design und vom Inhalt zu trennen.
    Übrigens genau den Punkt sehe ich in Deinem Modell noch nicht. Soweit ich es verstanden hab, übernimmt das serverseitige Skript sowohl die Gestaltung (durch die Umwandlung nach HTML) als auch die Logik (z.B.bestimmte Tags lösen Datenbankabfragen aus). Aber vielleicht ist "Skript" hier noch nicht weit genug aufgeschlüsselt worden.
    Jedenfalls nur XML zu machen um XML zu machen (und dann noch mit propritären Tags, wie es mir hier scheint) macht wenig Sinn, da es selbst ja nicht darstellbar ist und immer irgendwie nach HTML umgewandelt werden muss.

    Gruß
      Michael