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?

Donate and get more free time-saving code on this website in the future.