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

Breadcrumb

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

class SniffLocalCache

@internal

Hierarchy

  • class \SlevomatCodingStandard\Helpers\SniffLocalCache

Expanded class hierarchy of SniffLocalCache

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Helpers/SniffLocalCache.php, line 13

Namespace

SlevomatCodingStandard\Helpers
View source
final class SniffLocalCache {
    
    /**
     * @phpcsSuppress SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint
     * @var array<int, array<string, mixed>>
     */
    private static $cache = [];
    
    /**
     * @phpcsSuppress SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint
     * @return mixed
     */
    public static function getAndSetIfNotCached(File $phpcsFile, string $key, Closure $lazyValue) {
        $fixerLoops = $phpcsFile->fixer !== null ? $phpcsFile->fixer->loops : 0;
        $internalKey = sprintf('%s-%s', $phpcsFile->getFilename(), $key);
        self::setIfNotCached($fixerLoops, $internalKey, $lazyValue);
        return self::$cache[$fixerLoops][$internalKey] ?? null;
    }
    private static function setIfNotCached(int $fixerLoops, string $internalKey, Closure $lazyValue) : void {
        if (array_key_exists($fixerLoops, self::$cache) && array_key_exists($internalKey, self::$cache[$fixerLoops])) {
            return;
        }
        self::$cache[$fixerLoops][$internalKey] = $lazyValue();
        if ($fixerLoops > 0) {
            unset(self::$cache[$fixerLoops - 1]);
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary
SniffLocalCache::$cache private static property * @phpcsSuppress SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint
*
SniffLocalCache::getAndSetIfNotCached public static function * @phpcsSuppress SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint
*
SniffLocalCache::setIfNotCached private static function

API Navigation

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