Module Development

Add Cache Context and Tags to Renderable Arrays for Drupal 8, 9, 10, and 11

Whenever your custom code outputs a render array, you need to use the #cache property to define the cacheability of the content. This includes providing information about any related context that informs Drupal about how the content varies, and tags that help Drupal know what circumstances might require the cached data to be invalidated. We can add #cache properties to the render arrays output by both the custom block, and the weather page controller, to ensure they are properly cached.

In this tutorial, we'll:

  • Learn how to use the #cache property of a render array to provide cacheability data to Drupal.
  • Provide context about the data that's being displayed.
  • Tell Drupal about any dependencies of the content.

By the end of this tutorial you should be able to use the #cache property to define the cacheability of the content contained in a render array.

Drupal Module Developer Guide