1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-30 04:39:00 +01:00
psalm/tests/Internal/Provider/FileStorageInstanceCacheProvider.php
orklah bc900b2dd6
Document lowercase-string when possible (#4904)
* document lowercase-string

* fix missing strtolower
2021-01-29 11:47:22 +01:00

43 lines
1.0 KiB
PHP

<?php
namespace Psalm\Tests\Internal\Provider;
use Psalm\Storage\FileStorage;
use function strtolower;
class FileStorageInstanceCacheProvider extends \Psalm\Internal\Provider\FileStorageCacheProvider
{
/** @var array<lowercase-string, FileStorage> */
private $cache = [];
public function __construct()
{
}
public function writeToCache(FileStorage $storage, string $file_contents): void
{
$file_path = strtolower($storage->file_path);
$this->cache[$file_path] = $storage;
}
public function getLatestFromCache(string $file_path, string $file_contents): ?FileStorage
{
$cached_value = $this->loadFromCache(strtolower($file_path));
if (!$cached_value) {
return null;
}
return $cached_value;
}
public function removeCacheForFile(string $file_path): void
{
unset($this->cache[strtolower($file_path)]);
}
private function loadFromCache(string $file_path): ?FileStorage
{
return $this->cache[strtolower($file_path)] ?? null;
}
}