【问题标题】:What's the difference between Partial and Slot in Symfony?Symfony 中的 Partial 和 Slot 有什么区别?
【发布时间】:2017-10-23 00:13:54
【问题描述】:

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

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

【问题讨论】:

    标签: symfony1 partial slot


    【解决方案1】:

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

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

    使用方法示例如下:

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

    我希望能澄清一点。

    【讨论】:

      【解决方案2】:

      部分来自文件:

      include_partial('thing', $params) 将包含 _thing.php 和 $params 在它的范围内。

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

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

      【讨论】:

        【解决方案3】:

        您只需要知道 Symfony 备忘单View. Partials, components, slots and component slots(PDF,45 KB)。

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-12-26
            • 2010-10-29
            • 2015-12-22
            • 2010-10-02
            • 2011-12-12
            • 2010-09-16
            • 2012-03-14
            相关资源
            最近更新 更多