是什么使()和renderStatic()什么的区别在TYPO3写一个视图助手时,应使用

问题描述 投票:2回答:1

还有用于编写自定义视图助手和不同的方式来做事的几个例子。我已经看到了渲染(实施例)中,用renderStatic(用于Developing a Custom ViewHelper例子)。

24 Fluid Tips有一个解释,但我不明白,它不说清楚,我为什么有2个功能,应该使用什么地方。

重大更改(Render method arguments on ViewHelpers deprecated),并在不同的地方零散的信息使得很难在这里得到一个明确的答案。在Developing a Custom ViewHelper的例子最新和最佳做法?

typo3 fluid view-helpers
1个回答
5
投票

▸renderStatic() 首先,renderStatic()是静态PHP方法。这意味着,以实例的属性,如$this->tag,这是例如当你的视图助手类是AbstractTagBasedViewHelper的子类需要你用不上。

renderStatic()的另一个缺点是,你不能访问子节点。子节点是在下面的示例例子<f:then>

<f:if condition="{variable}">
<f:then>
...
</f:then>
</f:if>

话虽如此,renderStatic()拥有最好的性能,因为它是由编译流体中调用。因此,该方法应该尽可能使用。

▸渲染() 在某些情况下,这种方法是更好的选择或已被用于特定的用途的情况下(见以上的解释)。在一个render()方法实现的逻辑未编译,其具有被高速缓存上输出的影响。

render()的缺点是它的性能。

▸摘要/附加注释

  • 如果可以的话(性能)使用renderStatic()
  • 使用render(),如果要实现TagBased-视图助手(子类 TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper)。
  • 使用render(),如果你需要阅读的子节点。
  • 审查附带流体(例如TYPO3 V9 LTS)作为例子的ViewHelpers。 (见:typo3/sysext/fluid/Classes/ViewHelpers/*)[GitHub]
© www.soinside.com 2019 - 2024. All rights reserved.