How to use configuration as cacheable dependencies in drupal 8 & 9

Cacheable dependencies got introduced in drupal 8 and provides great power over your caching. I recently found out that you can add "cacheable dependencies" to your render arrays like in the snippet below. It will only get cleared if the configuration changes. That's quite a great win, actually!

public function build() {
  $config = \Drupal::config('system.site');

  $build = [
    '#markup' => $config->get('name'),
  ];

  $renderer = \Drupal::service('renderer');
  $renderer->addCacheableDependency($build, $config);

  return $build;
}

More about cacheability of render arrays.

 

Saved you some valuable time?

Buy me a drink 🍺 to keep me motivated to create free content like this!