还有用于编写自定义视图助手和不同的方式来做事的几个例子。我已经看到了渲染(实施例)中,用renderStatic(用于Developing a Custom ViewHelper例子)。
在24 Fluid Tips有一个解释,但我不明白,它不说清楚,我为什么有2个功能,应该使用什么地方。
重大更改(Render method arguments on ViewHelpers deprecated),并在不同的地方零散的信息使得很难在这里得到一个明确的答案。在Developing a Custom ViewHelper的例子最新和最佳做法?
▸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/sysext/fluid/Classes/ViewHelpers/*
)[GitHub]