в чем разница между render()
и drupal_render()
вообще? Есть ли причина использовать только drupal_render ()?
Документы для render()
объяснения довольно хорошо:
Эта функция визуализирует элемент с помощью drupal_render (). Элемент верхнего уровня отображается с show () перед рендерингом, поэтому он всегда будет отображаться, даже если для него ранее использовался hide ().
render()
в основном это просто оболочка, за drupal_render()
исключением того, что он гарантирует, что переданный элемент настроен для отображения при передаче через drupal_render()
.
Это также гарантирует, что переданный элемент является массивом (который drupal_render()
может принять все ). Если это не так, элемент возвращается обратно как есть. Так что это обеспечивает немного безопасности, если хотите.
Если по какой-либо причине у вас есть переменная, которую вы хотите визуализировать, и вы не знаете, является ли она строкой или массивом визуализации, вы можете передать ее напрямую, render()
не проверяя тип переменной самостоятельно.
Для некоторых реальных примеров подобной ситуации есть список вызовов, которыеrender()
вы можете просмотреть.