applyTo($build); return $build; } /** * Extracts cache metadata from renders array. */ private static function extractFromArray(array $build): CacheableMetadata { $cache_metadata = CacheableMetadata::createFromRenderArray($build); $keys = Element::children($build); foreach (array_intersect_key($build, array_flip($keys)) as $item) { $cache_metadata->addCacheableDependency(self::extractFromArray($item)); } return $cache_metadata; } }