Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. BackendChain.php

function BackendChain::getMultiple

Overrides CacheBackendInterface::getMultiple

File

core/lib/Drupal/Core/Cache/BackendChain.php, line 85

Class

BackendChain
Defines a chained cache implementation for combining multiple cache backends.

Namespace

Drupal\Core\Cache

Code

public function getMultiple(&$cids, $allow_invalid = FALSE) {
    $return = [];
    foreach ($this->backends as $index => $backend) {
        $items = $backend->getMultiple($cids, $allow_invalid);
        // Propagate the values that could be retrieved from the current cache
        // backend to all missed backends.
        if ($index > 0 && !empty($items)) {
            for ($i = $index - 1; 0 <= $i; --$i) {
                foreach ($items as $cached) {
                    $this->backends[$i]
                        ->set($cached->cid, $cached->data, $cached->expire, $cached->tags);
                }
            }
        }
        // Append the values to the previously retrieved ones.
        $return += $items;
        if (empty($cids)) {
            // No need to go further if we don't have any cid to fetch left.
            break;
        }
    }
    return $return;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal