class ApcuQueuedCachedClassLoader in X Autoload 7.5
Hierarchy
- class \Drupal\xautoload\ClassLoader\AbstractClassLoader implements ClassLoaderInterface- class \Drupal\xautoload\ClassLoader\AbstractClassLoaderDecorator- class \Drupal\xautoload\ClassLoader\AbstractQueuedCachedClassLoader implements CacheManagerObserverInterface- class \Drupal\xautoload\ClassLoader\ApcuQueuedCachedClassLoader
 
 
- class \Drupal\xautoload\ClassLoader\AbstractQueuedCachedClassLoader implements CacheManagerObserverInterface
 
- class \Drupal\xautoload\ClassLoader\AbstractClassLoaderDecorator
Expanded class hierarchy of ApcuQueuedCachedClassLoader
1 file declares its use of ApcuQueuedCachedClassLoader
File
- src/ClassLoader/ ApcuQueuedCachedClassLoader.php, line 5 
Namespace
Drupal\xautoload\ClassLoaderView source
class ApcuQueuedCachedClassLoader extends AbstractQueuedCachedClassLoader {
  /**
   * @var string
   */
  private $prefix;
  /**
   * @param string $prefix
   *
   * @return string[]
   */
  protected function loadClassFiles($prefix) {
    $this->prefix = $prefix;
    $cached = \apcu_fetch($this->prefix);
    return !empty($cached) ? $cached : array();
  }
  /**
   * @param string[] $toBeAdded
   * @param string[] $toBeRemoved
   *
   * @return string[]
   */
  protected function updateClassFiles($toBeAdded, $toBeRemoved) {
    $class_files = $toBeAdded;
    // Other requests may have already written to the cache, so we get an up to
    // date version.
    $cached = \apcu_fetch($this->prefix);
    if (!empty($cached)) {
      $class_files += $cached;
      foreach ($toBeRemoved as $class => $file) {
        if (isset($class_files[$class]) && $class_files[$class] === $file) {
          unset($class_files[$class]);
        }
      }
    }
    \apcu_store($this->prefix, $class_files);
    return $class_files;
  }
} 
      