我知道第一部分是主观的,但我想听听人们使用的一些不同的技术。这是一个由两部分组成的问题:您在 PHP 中使用什么来处理复杂的多行字符串?而且,我可以使用smarty 的组合类型的关系吗?
问题1:我知道有heredoc和“。” 操作员。如果有的话,我正在寻找新鲜的、更具可读性的想法。
问题 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中将一个模板加载到另一个模板中,即:
// ... 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中有“模板继承”,但我不熟悉。它能给我类似的功能吗?
注意:我认为 heredoc 的最大问题是我无法为 html 获得语法突出显示(如果我在 heredoc 字符串中指定 html)。如果没有突出显示,我想通过 smarty 传递的 html 很难阅读,这有悖于 smarty 的目的。