class ListCacheBinsPass

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Cache/ListCacheBinsPass.php \Drupal\Core\Cache\ListCacheBinsPass
  2. 8.9.x core/lib/Drupal/Core/Cache/ListCacheBinsPass.php \Drupal\Core\Cache\ListCacheBinsPass
  3. 10 core/lib/Drupal/Core/Cache/ListCacheBinsPass.php \Drupal\Core\Cache\ListCacheBinsPass

Adds cache_bins parameter to the container.

Hierarchy

  • class \Drupal\Core\Cache\ListCacheBinsPass implements \Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface

Expanded class hierarchy of ListCacheBinsPass

1 file declares its use of ListCacheBinsPass
CoreServiceProvider.php in core/lib/Drupal/Core/CoreServiceProvider.php

File

core/lib/Drupal/Core/Cache/ListCacheBinsPass.php, line 11

Namespace

Drupal\Core\Cache
View source
class ListCacheBinsPass implements CompilerPassInterface {
    
    /**
     * Implements CompilerPassInterface::process().
     *
     * Collects the cache bins into the cache_bins parameter.
     */
    public function process(ContainerBuilder $container) : void {
        $cache_info['cache']['bins'] = [];
        $cache_info['cache']['default_bin_backends'] = [];
        $cache_info['memory_cache']['bins'] = [];
        $cache_info['memory_cache']['default_bin_backends'] = [];
        $tag_info = [
            'cache.bin' => 'cache',
            'cache.bin.memory' => 'memory_cache',
        ];
        foreach ($tag_info as $service_tag => $section) {
            foreach ($container->findTaggedServiceIds($service_tag) as $id => $attributes) {
                $bin = substr($id, strpos($id, '.') + 1);
                $cache_info[$section]['bins'][$id] = $bin;
                if (isset($attributes[0]['default_backend'])) {
                    $cache_info[$section]['default_bin_backends'][$bin] = $attributes[0]['default_backend'];
                }
            }
        }
        $container->setParameter('cache_bins', $cache_info['cache']['bins']);
        $container->setParameter('cache_default_bin_backends', $cache_info['cache']['default_bin_backends']);
        $container->setParameter('memory_cache_bins', $cache_info['memory_cache']['bins']);
        $container->setParameter('memory_cache_default_bin_backends', $cache_info['memory_cache']['default_bin_backends']);
    }

}

Members

Title Sort descending Modifiers Object type Summary
ListCacheBinsPass::process public function Implements CompilerPassInterface::process().

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.