因此,您说您需要在某些模板中包含一些代码,这些代码将以完全相同的方式呈现这些模板。
我的建议是,使用插槽。例如,您有以下模板:helloSuccess.php 和 goodbyeSuccess.php,但在这两个模板中您都需要显示一些内容(比如说当前时间)。因此,您不想在网站的任何地方都显示它,但某些模板可能需要它。
你可以有一个 layout.php(主应用布局模板)看起来像这样:
<html>
<head>
{....}
</head>
<body>
<div id="special_container">
<?php if(has_slot("time")):?>
<?php include_slot("time")?>
<?php endif?>
</div>
<div class="container">
<?php echo $sf_content ?>
</div>
</body>
</html>
然后,每个想要在“special_container”中渲染某些东西的模板都应该实现插槽“time”。回到这个例子,helloSuccess.php 和 goodbyeSuccess.php 在他们的代码中应该有这样的内容:
<?php slot('time') ?>
<!-- custom sidebar code for the current template-->
<h1>Time </h1>
<p>name: <?php echo date("D M d, Y G:i a"); ?></p>
<?php end_slot() ?>
有关插槽、组件、部分的更多信息,我真的会推荐这个链接:在视图层内部,它的 symfony 1.2 但对于 2.0 之前的几乎每个 symfony 版本来说都是一样的