clean install

This commit is contained in:
2024-12-10 15:08:16 +01:00
commit e14eb2d8fd
31193 changed files with 3555714 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
<?php declare(strict_types = 1);
namespace SlevomatCodingStandard\Helpers;
use Closure;
use PHP_CodeSniffer\Files\File;
use function array_key_exists;
use function sprintf;
/**
* @internal
*/
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]);
}
}
}