▸ renderStatic ()
Прежде всего, renderStatic()
- это статический метод PHP.Это означает, что у вас нет доступа к атрибутам экземпляра, таким как $this->tag
, что требуется, например, когда ваш класс ViewHelper является подклассом AbstractTagBasedViewHelper
.
Еще один недостаток renderStatic()
заключается в том, что выне может получить доступ к дочерним узлам.Дочерний узел, например, <f:then>
в следующем примере:
<f:if condition="{variable}">
<f:then>
...
</f:then>
</f:if>
Сказав, что renderStatic()
показывает лучшую производительность, потому что он вызывается из скомпилированного Fluid.Поэтому этот метод следует использовать, если это возможно.
▸ render ()
При определенных обстоятельствах этот метод является лучшим выбором или должен использоваться для конкретного случая использования (см. объяснения выше).Логика, реализованная в методе render()
, не скомпилирована, что влияет на кэшированный вывод.
Недостатком render()
является его производительность.
▸ Резюме/ Дополнительные примечания
- Используйте
renderStatic()
, если можете (производительность). - Используйте
render()
, если реализуете TagBased-ViewHelper (подкласс * 1037)* TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
). - Используйте
render()
, если вам нужно прочитать дочерние узлы. - Просмотрите ViewHelpers, которые поставляются с Fluid (например, TYPO3 v9 LTS) в качестве примеров.
(см .: typo3/sysext/fluid/Classes/ViewHelpers/*
) [ GitHub ]