これの最初の部分が主観的なものであることは承知していますが、人々が使用するいくつかの異なるテクニックを聞きたいです. これは 2 つの部分からなる質問です: PHP で複雑な複数行の文字列に何を使用しますか? あと、smartyと合成型の関係は使えますか?
質問 1: ヒアドキュメントと "." があることは知っています。オペレーター。もしあれば、新鮮で読みやすいアイデアを探しています。
質問 2: もっと具体的に言うと、smarty でやりたいことは次のとおりです。
テンプレート base.tpl があるとします。
<html>
<head><title></title></head>
<body>
{$main_content}
</body>
</html>
テンプレート、つまり $main_content を表す別のテンプレート、たとえば main.tpl をチェーンできますか?
<div id="header">$header</div>
<div id="container">
<h1>{$first_header}</h1>
<p>{$first_paragraph}</p>
<h1>{$second_header}</h1>
<p>{$second_paragraph}</p>
私はwhatever.phpで1つのテンプレートを別のテンプレートにロードしたいので、つまり:
// ... including smarty and all other boiler plate things ...
$smarty -> assign('first_header', "Foo");
$smarty -> assign('first_paragraph', "This is a paragraph");
$smarty -> assign('second_header', "Bar");
$smarty -> assign('second_paragraph', "This is another paragraph");
$main_content = $smarty->load('main.tpl');
$smarty -> display('base.tpl');
smarty に「テンプレート継承」があることは知っていますが、詳しくありません。これと同様の機能を提供できますか?
注: ヒアドキュメントの最大の問題は、html の構文を強調表示できないことだと思います (ヒアドキュメント文字列で html を指定した場合)。強調表示がないと、smarty を通過させたい html は非常に読みにくく、smarty の目的に反します。