Matt: PHP Code

Hi.

Es stellt sich mir gerade die Frage ob es besser ist HTML Code als Ausgabe in PHP zu schreiben (1) oder PHP Codes in HTML (2).

Entweder (1):
$price = 10+12;
echo '<tr><td><strong>'.$price.'<br/>';

Oder:
<? $price = 10+12; ?>
<tr><td><strong><?=$price; ?><br/>';

Ich weiß nicht ob man das generell sagen kann, es würde mich aber interessieren wie ihr das löst bzw. was ihr für sinnvoller findet?

Grüße

  1. bzw. was ihr für sinnvoller findet?

    Ich finde beides nicht sinnvoll. Besser man trennt den HTML Code vom PHP Code und benutzt Templates (z.B. Smarty)

    1. Ich finde beides nicht sinnvoll. Besser man trennt den HTML Code vom PHP Code und benutzt Templates (z.B. Smarty)

      Wir benutzen das Template-System Smarty, dort stellt sich auch nicht die Frage. Da ist ja alles schön getrennt.

      1. Wir benutzen das Template-System Smarty, dort stellt sich auch nicht die Frage. Da ist ja alles schön getrennt.

        Wieso willst du dann auf einmal wieder beides mischen? Ich sehe dafür keinen Grund.

        1. Wieso willst du dann auf einmal wieder beides mischen? Ich sehe dafür keinen Grund.

          Manche Leute müssen einfach Fragen in Frage stellen, wieso auch immer. Seine Frage war eine andere...

          1. Manche Leute müssen einfach Fragen in Frage stellen, wieso auch immer. Seine Frage war eine andere...

            Wenn jemand fragt, was nach _Meinung_ anderer sinnvoller ist, werden nunmal Meinungen kund getan.

  2. Hi!

    PHP in HTML ist definitiv die bessere Methode. Dein Code wird dadurch besser wartbar.
    Näheres dazu unter: http://de.wikipedia.org/wiki/Model_View_Controller

    Gruß
    Oliver

    1. Hi!

      PHP in HTML ist definitiv die bessere Methode. Dein Code wird dadurch besser wartbar.
      Näheres dazu unter: http://de.wikipedia.org/wiki/Model_View_Controller

      PHP in HTML soll besser wartbarer werden? Das Gegenteil duerfte der Fall sein...

      Und mit MVC hat das IMHO auch nicht direkt etwas zu tun. Wenn Du Darstellung von Logik trennen willst, dann ist das IMHO losgeloest von der eingangs gestellten Frage bzgl. PHP/HTML-Mixtur.

      Nick

      --------------------------------------------------
      http://www.xilp.eu
      XILP Internet Links People
      Dein persoenliches privates Netzwerk
      aus Freunden, Verwandten, Bekannten und Kollegen.
      --------------------------------------------------

      1. Hello,

        Und mit MVC hat das IMHO auch nicht direkt etwas zu tun. Wenn Du Darstellung von Logik trennen willst, dann ist das IMHO losgeloest von der eingangs gestellten Frage bzgl. PHP/HTML-Mixtur.

        Dann müsste man auch ein Volltemplate benutzen, dass lediglich Platzhalter im selben Programmiercode enthält also z.B. <!-- Platzhalter F013 -->

        Das Template kann man dann in der Sprache des Logikabschnittes oder auch in einer weiteren parsen lassen und die Platzhalter durch die konkreten Werte ersetzen lassen.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

  3. Es stellt sich mir gerade die Frage ob es besser ist HTML Code als Ausgabe in PHP zu schreiben (1) oder PHP Codes in HTML (2).

    Mir hat mal ein Dumpf gesagt, dass PHP besser ist als Perl, weil man "PHP in HTML schreiben kann". Mal ganz davon abgesehen, dass das mit Perl auch (irgendwie ;) geht, sehe ich keinen Vorteil.

    Eher könnte Programmiererverblödung die Folge sein, denn das grundsätzliche Vorgehen bleibt bei PHP vielen (einigen ;) unklar.

  4. Hi.

    Es stellt sich mir gerade die Frage ob es besser ist HTML Code als Ausgabe in PHP zu schreiben (1) oder PHP Codes in HTML (2).

    Ich habe direktes HTML inzwischen verbannt. Das gibt doch nur Chaos, HTML mit PHP-Schnipseln zu mixen. Also lieber sauber alles in PHP, d.h. HTML-Ausgaben via print oder echo.

    Nick

    --------------------------------------------------
    http://www.xilp.eu
    XILP Internet Links People
    Dein persoenliches privates Netzwerk
    aus Freunden, Verwandten, Bekannten und Kollegen.
    --------------------------------------------------

  5. Hallo Matt,

    $price = 10+12;
    echo '<tr><td><strong>'.$price.'<br/>';

    Oder:
    <? $price = 10+12; ?>
    <tr><td><strong><?=$price; ?><br/>';

    Letzteres ist meiner Meinung nach sauberer, es kann aber auch übersichtlicher sein, wenn man gewisse HTML-Teile von PHP ausgeben lässt, eine wirkliche Entscheidung lässt sich nur im Individualfall treffen.

    Beides sind aber eigentlich Vorgehensweisen, die man nur bei kleinen, mal eben zusammen gehackten Scripts verweden sollte. Es ist wesentlich sauberer, HTML- und PHP-Code mittels eines Template-Systems (Smarty wurde ja als Beispiel schon genannt) komplett zu trennen.

    Schöne Grüße,

    Johannes

    1. Hello,

      Letzteres ist meiner Meinung nach sauberer, es kann aber auch übersichtlicher sein, wenn man gewisse HTML-Teile von PHP ausgeben lässt, eine wirkliche Entscheidung lässt sich nur im Individualfall treffen.

      Es gibt eigentlich gar keine alternative dazu, als allen Kontent durch PHP ausgeben zu lassen. Wie soll PHP sonst die Übersicht und Kontrolle darüber behalten?

      Ein Beispiel (noc nicht fertig) für die Strukturierung habe ich mal unter
      http://selfhtml.bitworks.de --> Strukturierung
      angefangen.

      Was ist noch zu tun? Die Buttons sollten auch konsequent durch Funktionen angelegt werden. Die Fehlermeldungen sollten sich in einem eigenen Array sammeln. Der "Löschzähler" muss natürlich hochgezählt werden, bis tatsächlich die Zusammenstellung erfolgreich an die Datenbank abgeschickt wurde...

      Ist eben ein Diskussionsbeispiel.

      Dort kann man aber sehen, dass es sinnvoll ist, auch das Hauptdokument durch PHP ausgeben zu lassen.

      Wenn z.B. ein Datenbankfehler auftritt, gibt man dieses Dokument, das natürlich dann auch Links zurück zur Stammseite haben sollte, einfach gefüttert mit einer Fehlermeldung aus. Die Ausgabe ist dann trotzdem valides HTML und man benötigt das beliebte "die()" nicht mehr, das üblicherweise leider meistens nicht mit einem validen HTML-Text gefüttert wird. Im Prinzip ginge das aber auch.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

      1. Hallo Tom,

        Es gibt eigentlich gar keine alternative dazu, als allen Kontent durch PHP ausgeben zu lassen. Wie soll PHP sonst die Übersicht und Kontrolle darüber behalten?

        Für den Erhalt der Übersicht ist der Autor zuständig. Generell senkt natürlich eine Vermischung von PHP und HTML die Übersicht.

        Die von Matt vorgeschlagene Vorgehensweise im Kopf der Datei Variablen mit Inhalt zu befüllen und diese dann in den HTML-Code eingebettet ausgeben zu lassen, halte ich jedoch für eine sauberere Variante. Denn das Prinzip, nach dem dabei vorgegangen wird, ist das gleiche wie bei einem Template-System.

        Dort kann man aber sehen, dass es sinnvoll ist, auch das Hauptdokument durch PHP ausgeben zu lassen.

        Ich kann in deinem Beispiel kein Argument dafür sehen. Im Gegenteil, die durch die Verwendung von doppelten Anführungszeichen nötigen Maskierungen und das explizite Einfügen von Zeilenumbrüchen senkt in meinen Augen schon die Lesbarkeit.

        Wenn z.B. ein Datenbankfehler auftritt, gibt man dieses Dokument, das natürlich dann auch Links zurück zur Stammseite haben sollte, einfach gefüttert mit einer Fehlermeldung aus. Die Ausgabe ist dann trotzdem valides HTML und man benötigt das beliebte "die()" nicht mehr, das üblicherweise leider meistens nicht mit einem validen HTML-Text gefüttert wird. Im Prinzip ginge das aber auch.

        Dazu ist es nicht nötig, alles mit PHP ausgeben zu lassen. Man kann mit PHP auch als normalen HTML-Code notierte Seitenteile bedingt ausgeben lassen, das halte ich nicht per se für unsauber. Mögliche Verwirrungen entstehen lediglich dadurch, dass PHP in diesem Fall sowohl als Sprache für die Programmlogik als auch als Template-Sprache eingesetzt wird. Der Vorteil eines Template-Systems mit einer eigenen Sprache für die Ausgabelogik liegt weniger darin, dass es eine Notwendigkeit für eine saubere Trennung von Programm- und Ausgabelogik ist, sondern dass es den Template-Schreiber zwangsweise beschränkt und eine Vermischung des eigentlichen Programms und der Ausgabe erschwert.

        Schöne Grüße,

        Johannes

        1. Hello,

          Dazu ist es nicht nötig, alles mit PHP ausgeben zu lassen. Man kann mit PHP auch als normalen HTML-Code notierte Seitenteile bedingt ausgeben lassen,

          Eben dies habe ich in dem Beispiel getan.

          Die Kontrolle bezieht sich darauf, dass kein "loser" HTML-Code im Dokument auftauchen sollte, wenn man dynamische Seiten aufbaut. Typisches Beispiel sind da die Fehlermeldungen wegen schon gesendeten Header...

          Am einfachsten macht man es sich, wenn man erst die gesamte Seite (die Teilbereiche) berechnet, und dann erst anfängt, die Bausteine zusammenzufügen. Erst wenn nichts mehr schief gehen kann, wird angefangen auszugeben.

          Die Regel "ausgegeben ist ausgegeben" lässt sich einfach nicht umgehen...

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau