Es gibt zwei Fälle wirklich:
1) Vorlagencode. Ich würde soulmerges Ansatz der alternativen Syntax für Kontrollstrukturen empfehlen.
2) Kurzer, View-Helper-PHP-Code, der die Ausgabe generiert (normalerweise für die spätere Ersetzung), die nicht notwendigerweise eine eigene Untervorlage verdient.
für 2 ziehe ich es so etwas wie:
public function draw(){
$html = array();
foreach($this->item as $item){
$html[] = <<<EOD
<li class="{$item->class()}">{$item->label()}</li>
EOD;
}
return implode($html);
}
Ich ziehe diese über jede Art von wonky Alternative, die ob_start()
und ?> <?php
Blöcke beinhalten könnten. Sie möchten immer, dass Ihre Funktionen Zeichenfolgen und nicht direkt die Ausgabe von Echos zurückgeben, so dass die Aufrufer die Möglichkeit haben, Ergebnisse zu verketten und anderweitig zu manipulieren, ohne die Last der Ausgabepufferung auf den Aufgerufenen zu übertragen.
Das Heredoc macht es einfach, String-Ausgabe zu identifizieren, und obwohl ich denke, das Brechen der Einrückung ist eine Art hässlich, es am Ende ist sehr effektiv, wie Ihre HTML-Ausgabe wie kleine Haftnotizen abhebt. Das und die Tatsache, dass es in meiner IDE (PDT) gut grün hervorgehoben wird. (Nicht hier in der SO-Textmarker gesehen ...) so ist es immer explizit genau, welche Art von "Modus" ich bin.
Im Gegensatz dazu macht die ?> <?php
Technik macht es schwierig, HTML von PHP-Code zu unterscheiden. Sobald Sie es ein paar Mal tun, wird es ärgerlich zu verfolgen, ob Sie eine ?>
oder eine <?php
benötigen. Schließlich ist es oft ausführlicher, Auswechslungen mit <?php echo $obj->func() ?>
vs {$obj->func()}
zu tun Wenn Ihr Code komplexer wird, dann könnte es Zeit für Refactoring sein. Ich mag heredoc, denn wenn ich etwas ad-hoc mache, wird es hervorstechen und in ein paar Monaten ganz offensichtlich werden (ad-hoc tendiert dazu, zu einem Schlammball zu degenerieren, wenn man Anforderungen hinzufügt), wenn ich es getan habe habe 40 Zeilen von hredoc, die als 5 gestartet haben könnten. Wenn ich zurückkomme und meinen Code betrachte und die nicht vollständig ad-hoc-Version entwickle, ist es viel einfacher, die Teile der Datei zu identifizieren, in denen ich schlecht war. Dies geht zurück auf die Haftnotizen, grün hervorgehobener Kommentar, den ich auch über den Einzug gemacht habe.
Schönheit ist in der ... es ist nicht wirklich wichtig. Wenn Sie mit Designern arbeiten, mögen sie vielleicht kurze Tags. – bschaeffer