web-dev-qa-db-de.com

Warum enthalten Vorlagen so viele PHP Tag-Paare?

Ich habe einige PHP Erfahrungen, aber kaum irgendwelche WP Erfahrungen beim Schreiben von Themen ... Ich beginne gerade die Reise.

Alle Themen, die ich bisher im .org-Repository betrachtet habe, haben folgenden Code:

<?php if (condition) { ?>
..some html
<?php } else { ?>
..some other html
<?php } ?>

anstatt:

<?php
if (condition) {
  echo ..some html
}
else {
  echo ..some other html
}
?>

Ich kann sehen, dass wir, wenn wir einen Editor wie notepad ++ verwenden, das HTML lieber "nackt" und nicht in einer Echo-Anweisung haben, um dem Editor die Möglichkeit zu geben, HTML-Tags mit ihren End-Tags usw. zu kolorieren und abzugleichen.

Aber ich sehe eine Menge Vorlagen, die eine TONNE von PHP Code und sehr wenig HTML enthalten - und die immer noch PHP Tags um jede Codezeile setzen. Für mich ist das schwer zu lesen.

Gibt es dafür einen technischen Grund oder nur eine Präferenz des Entwicklers?

7
Chris

Wie immer kopieren die Leute das, was sie von IIRC gelernt haben, und der erste Stil ist der Codierungsstil des WordPress-Kerns.

Wie Sie selbst sagten, ist es bei einem großen Block generierten HTML-Codes einfacher, Tags unter dem ersten Stil zu betrachten (und auszugleichen), aber pragmatische Benutzer verwenden den zweiten, wenn dies nicht der Fall ist.

Es ist wirklich nur die Codierung der Stilvorliebe, nichts Technisches dahinter.

7
Mark Kaplun

Obwohl Sie vielleicht argumentieren, dass der Code schwieriger zu lesen ist, wenn Sie öfter in den PHP -Modus wechseln oder diesen verlassen, ist dies auch eine gute und allgemein empfohlene Vorgehensweise in PHP nicht um Ausgabestile zu mischen.

Das heißt, Sie geben entweder HTML aus dem HTML-Modus oder HTML aus echo-Anweisungen aus, aber Sie mischen keine Stile. Das würde einen Alptraum für die Instandhaltung schaffen.

Die Autoren der Vorlagen, die Sie lesen, folgen dieser bewährten Methode.

Letztendlich ist dies jedoch nur ein Stil-/Verwaltungsproblem: Nichts in der Sprache erfordert es von Natur aus.

Ein vernünftiges Template-System würde nicht Inline-PHP überhaupt zulassen, sondern nur deklarative Erweiterungen des HTML-Markups, aber das ist eine andere Geschichte ...