Partial和Slot这两个概念对我来说似乎相同。这两个功能都将模板中的占位符替换为实际标记。
什么时候应该使用Partial什么时候应该使用Slot?
slot 和 partials 之间的主要区别在于给定 slot 的渲染驻留在某个模板中。相反,部分只是将一个模板包含到另一个模板中。
“基本上,插槽是一个占位符,您可以将其放入任何视图元素(在布局、模板或部分)中。填充此占位符就像设置变量一样。填充代码全局存储在响应中, 所以你可以在任何地方定义它(在布局中、模板中或部分中)。只需确保在包含它之前定义一个插槽,并记住布局是在模板之后执行的(这是装饰过程),并且部分在模板中被调用时被执行。”
每种方法的使用示例如下:
我希望能澄清一点。
部分来自文件:
include_partial('thing', $params)
将_thing.php
在其范围内包含 $params 。
插槽不是文件,而是在模板/控制器中的其他位置设置:
slot('title', 'Home Page');
echo '<title>'.slot('title').'</title>'
你只需要知道 Symfony 备忘单View。零件、组件、插槽和组件插槽(PDF,45 KB)。
您可以将插槽视为 OO 方法定义。您的布局定义了插槽。模板扩展了布局并填充了这些槽(通过覆盖方法)。您还可以为插槽设置默认内容,该内容在未被覆盖时显示。
另一方面,分音就像作曲。它们是模板可以访问的可重用组件。它们大致相当于一个简单的include
语句,但您传入它使用的变量。
这个页面在解释这些概念方面做得很好:http ://www.symfony-project.org/book/1_2/07-Inside-the-View-Layer