ListCacheBinsPass.php

Same filename in other branches
  1. 8.9.x core/lib/Drupal/Core/Cache/ListCacheBinsPass.php
  2. 10 core/lib/Drupal/Core/Cache/ListCacheBinsPass.php
  3. 11.x core/lib/Drupal/Core/Cache/ListCacheBinsPass.php

Namespace

Drupal\Core\Cache

File

core/lib/Drupal/Core/Cache/ListCacheBinsPass.php

View source
<?php

namespace Drupal\Core\Cache;

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;

/**
 * Adds cache_bins parameter to the container.
 */
class ListCacheBinsPass implements CompilerPassInterface {
    
    /**
     * Implements CompilerPassInterface::process().
     *
     * Collects the cache bins into the cache_bins parameter.
     */
    public function process(ContainerBuilder $container) {
        $cache_bins = [];
        $cache_default_bin_backends = [];
        foreach ($container->findTaggedServiceIds('cache.bin') as $id => $attributes) {
            $bin = substr($id, strpos($id, '.') + 1);
            $cache_bins[$id] = $bin;
            if (isset($attributes[0]['default_backend'])) {
                $cache_default_bin_backends[$bin] = $attributes[0]['default_backend'];
            }
        }
        $container->setParameter('cache_bins', $cache_bins);
        $container->setParameter('cache_default_bin_backends', $cache_default_bin_backends);
    }

}

Classes

Title Deprecated Summary
ListCacheBinsPass Adds cache_bins parameter to the container.

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