3

PartialSlot这两个概念对我来说似乎相同。这两个功能都将模板中的占位符替换为实际标记。

什么时候应该使用Partial什么时候应该使用Slot

4

4 回答 4

4

slot 和 partials 之间的主要区别在于给定 slot 的渲染驻留在某个模板中。相反,部分只是将一个模板包含到另一个模板中。

“基本上,插槽是一个占位符,您可以将其放入任何视图元素(在布局、模板或部分)中。填充此占位符就像设置变量一样。填充代码全局存储在响应中, 所以你可以在任何地方定义它(在布局中、模板中或部分中)。只需确保在包含它之前定义一个插槽,并记住布局是在模板之后执行的(这是装饰过程),并且部分在模板中被调用时被执行。”

每种方法的使用示例如下:

  • 您页面的标题 - 可能会放置在插槽中(或标题助手中),然后您将在布局中检查插槽是否已定义,然后显示它。
  • 侧边栏项目- 假设您有 3 个侧边栏“插槽”,那么您将拥有三个插槽,例如“sidebar-1”、“sidebar-2”和“sidebar-3”。然后,您将在您的模板中定义插槽,如果您愿意,可以使用部分(甚至是组件)来呈现它。

我希望能澄清一点。

于 2010-07-18T15:01:59.380 回答
3

部分来自文件:

include_partial('thing', $params)_thing.php在其范围内包含 $params 。

插槽不是文件,而是在模板/控制器中的其他位置设置:

slot('title', 'Home Page');
echo '<title>'.slot('title').'</title>'

于 2010-07-17T14:57:51.073 回答
2

你只需要知道 Symfony 备忘单View。零件、组件、插槽和组件插槽(PDF,45 KB)。

于 2010-07-23T09:55:17.897 回答
1

您可以将插槽视为 OO 方法定义。您的布局定义了插槽。模板扩展了布局并填充了这些槽(通过覆盖方法)。您还可以为插槽设置默认内容,该内容在未被覆盖时显示。

另一方面,分音就像作曲。它们是模板可以访问的可重用组件。它们大致相当于一个简单的include语句,但您传入它使用的变量。

这个页面在解释这些概念方面做得很好:http ://www.symfony-project.org/book/1_2/07-Inside-the-View-Layer

于 2010-07-17T15:00:03.770 回答