1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-11 16:59:45 +01:00
psalm/tests/Internal/Provider/FileStorageInstanceCacheProvider.php

42 lines
913 B
PHP
Raw Normal View History

2018-10-12 05:00:32 +02:00
<?php
2023-10-19 13:12:06 +02:00
declare(strict_types=1);
namespace Psalm\Tests\Internal\Provider;
2018-10-12 05:00:32 +02:00
2021-12-03 20:11:20 +01:00
use Psalm\Internal\Provider\FileStorageCacheProvider;
2018-10-12 05:00:32 +02:00
use Psalm\Storage\FileStorage;
2021-06-08 04:55:21 +02:00
use function strtolower;
2018-10-12 05:00:32 +02:00
2021-12-03 20:11:20 +01:00
class FileStorageInstanceCacheProvider extends FileStorageCacheProvider
2018-10-12 05:00:32 +02:00
{
/** @var array<lowercase-string, FileStorage> */
2022-12-16 19:58:47 +01:00
private array $cache = [];
2018-10-12 05:00:32 +02:00
public function __construct()
{
}
/**
* @param lowercase-string $file_path
*/
protected function storeInCache(string $file_path, FileStorage $storage): void
2018-10-12 05:00:32 +02:00
{
$this->cache[$file_path] = $storage;
}
public function removeCacheForFile(string $file_path): void
2018-10-12 05:00:32 +02:00
{
unset($this->cache[strtolower($file_path)]);
}
/**
* @param lowercase-string $file_path
*/
protected function loadFromCache(string $file_path): ?FileStorage
2018-10-12 05:00:32 +02:00
{
return $this->cache[$file_path] ?? null;
2018-10-12 05:00:32 +02:00
}
}