web-dev-qa-db-fra.com

quelle est la difference entre render () et drupal_render ()?

quelle est la différence entre render() et drupal_render() de toute façon? Y a-t-il une raison d'utiliser uniquement drupal_render ()?

26
Pan Chrono

Les documents pour render() l'expliquent assez bien:

Cette fonction rend un élément à l'aide de drupal_render (). L'élément de niveau supérieur est affiché avec show () avant le rendu, il sera donc toujours rendu même si hide () avait été précédemment utilisé dessus.

render() est fondamentalement juste un wrapper pour drupal_render(), sauf qu'il s'assure que l'élément passé est configuré pour être affiché lors de son passage à drupal_render().

Il s'assure également que l'élément transmis est un tableau (qui est tout ce que drupal_render() peut accepter). Si ce n'est pas le cas, l'élément est retourné tel quel. Il offre donc un peu de filet de sécurité si vous le souhaitez.

Si, pour une raison quelconque, vous avez une variable à rendre et que vous ne savez pas s'il s'agit d'une chaîne ou d'un tableau de rendu, vous pouvez la passer directement par render() sans avoir à tester le type de variable vous-même.

Pour quelques exemples concrets de ce genre de situation, il y a une liste d'appels à render() que vous pouvez parcourir.

31
Clive