Viennamade: PHP-Blöcke kennzeichnen

Hallo!
Beim Erstellen einer PHP-Seite kann man die Programmblöcke vom HTML-Quelltext trennen:

...PHP-Code
?><li><?php print $row[0];?></li><?php
PHP-Code ...

Oder eben auch nicht:

...PHP-Code
print "<li>$row[0]</li>\n";
PHP-Code ...

Was ist besser? Sauberer?
Tut mir leid, falls die Frage dumm ist (PHP-Newbie).

Beste Grüße
Viennamade

  1. Was ist besser? Sauberer?
    Tut mir leid, falls die Frage dumm ist (PHP-Newbie).

    Hi,

    ich denke mal, das kommt ganz drauf an. Bei längeren HTML-Blöcken ist die "direkte" Methode auf jeden Fall viel übersichtlicher, daher zu bevorzugen.
    Die andere Methode eignet sich halt für kleinere Abschnitte, vor allem, wenn diese nochmal Variablen verwenden, wie in deinem Beispiel!

    Gruß,
    KonRad -

    --
    "Was Gott zusammengeführt hat ..." :: polithink.org -
    the politicultural e-zine :: http://www.polithink.org
    1. Hallo,

      <?php
      print <<<END
      jede Menge HTML gemischt mit PHP-Variablen

      END;
      ?>

      Dieter

  2. Hallo,

    Was ist besser? Sauberer?
    Tut mir leid, falls die Frage dumm ist (PHP-Newbie).

    also ich persönlich nutze bei längeren html-Blöcken meist folgendes:

    echo
    '<div>
      <br />
      '.$blah.'
      <br />
      <br />
      blah
    </div>'."\n";

    ist für mich am übersichtlichsten...

    Gruß,
    small-step

  3. Moin!

    Beim Erstellen einer PHP-Seite kann man die Programmblöcke vom HTML-Quelltext trennen:
    Oder eben auch nicht:
    Was ist besser? Sauberer?

    Trennen!

    Die Idealform wäre, wenn PHP- und HTML-Code nicht nur in einer Datei getrennt würden, sondern sogar in zwei verschiedenen Dateien vorliegen. Das nennt man dann Templates (die HTML-Dateien), und dort sind an gewissen Stellen Markierungen enthalten, in denen die per PHP dynamisch generierten Inhalte eingefügt werden. Für solche Templates gibts jede Menge verschiedener Template-Engines, mit denen du das ganze Suchen/Ersetzen-Zeugs der Markierungen in den Template-Dateien dir selbst zu programmieren sparen kannst, sondern du benutzt eine vorgefertigte Include-Datei, die du einbindest, und setzt an die passenden Stellen deines Skriptes Aufrufe, die das Template befüllen sollen.

    Für einige kleinere Anwendungen ist ein Template vielleicht Overkill (aber ernsthaft: Du sparst dir viel Arbeit, wenn du lieber direkt Templates einsetzt, denn die Kleinheitsschwelle ist _sehr_ niedrig). Dort ist es dann guter Stil, zu Beginn eines Skriptes einen großen PHP-Block zu haben, in dem alle möglichen Berechnungen, Abfragen und Verarbeitungen für die auszugebende Seite vorgenommen werden, und dann erst am Ende den PHP-Block "an sich" abzuschließen, mit HTML zu beginnen (angefangen bei <!DOCTYPE...>, <HTML>...) und dann nur noch sehr sparsam PHP dort einzusetzen, wo die zuvor berechneten Ergebnisse erscheinen sollen.

    Wenn du diese zwei Teile, PHP und HTML, nicht sauber trennst, kriegst du sehr schnell Probleme mit der Übersichtlichkeit - und mit der Qualität deines HTML-Codes wahrscheinlich auch, denn der wird bei unübersichtlichen HTML/PHP-Verschachtelungen nicht auf den ersten Blick verständlich und valide zu machen sein.

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
    1. Hi!

      Was ist besser? Sauberer?

      Trennen!

      Hast vollkommen Recht, aber btw: PHP wurde ja ehemals als Template-Sprache entwickelt, wie z.B. JSP was in Java-Frameworks oft als Sprache für die Templates verwendet wird(z.B. Jakarta Struts). Aber inzwischen ist diese "Template-Sprache" so mächtig dass sich damit komplexe Applikationen entwickeln lassen, und wenn eine komplexe Applikation keine vernünftige Trennung von Präsentation und Logik verwendet, endet das irgendwann meist im Chaos, daher hat PHP sein schlechte Image.
      Für ein paar einfache Scripte ist es durchaus OK PHP und HTML zu mischen, weil es supereinfach ist, bei komplexeren Anwendungen sollte man aber unbedingt Templates verwenden.
      Es ist auch durchaus möglich PHP als Template-Sprache zu verwenden, nur braucht man dann auch die Disziplin keine Logik in die Templates zu verlagern, und man muss gute Schnittstellen schaffen.

      Grüße
      Andreas