From bf6655a534a6775d30cafa67bd801276bda1d98d Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 13 Aug 2024 23:45:21 +0200 Subject: =?UTF-8?q?VERSION=200.2=20doctrine=20ORM=20et=20entit=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doctrine/dbal/src/Cache/QueryCacheProfile.php | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 vendor/doctrine/dbal/src/Cache/QueryCacheProfile.php (limited to 'vendor/doctrine/dbal/src/Cache/QueryCacheProfile.php') diff --git a/vendor/doctrine/dbal/src/Cache/QueryCacheProfile.php b/vendor/doctrine/dbal/src/Cache/QueryCacheProfile.php new file mode 100644 index 0000000..b085f6c --- /dev/null +++ b/vendor/doctrine/dbal/src/Cache/QueryCacheProfile.php @@ -0,0 +1,91 @@ +resultCache; + } + + public function getLifetime(): int + { + return $this->lifetime; + } + + /** @throws CacheException */ + public function getCacheKey(): string + { + if ($this->cacheKey === null) { + throw NoCacheKey::new(); + } + + return $this->cacheKey; + } + + /** + * Generates the real cache key from query, params, types and connection parameters. + * + * @param list|array $params + * @param array $connectionParams + * @psalm-param array|array $types + * + * @return array{string, string} + */ + public function generateCacheKeys(string $sql, array $params, array $types, array $connectionParams = []): array + { + if (isset($connectionParams['password'])) { + unset($connectionParams['password']); + } + + $realCacheKey = 'query=' . $sql . + '¶ms=' . serialize($params) . + '&types=' . serialize($types) . + '&connectionParams=' . hash('sha256', serialize($connectionParams)); + + // should the key be automatically generated using the inputs or is the cache key set? + $cacheKey = $this->cacheKey ?? sha1($realCacheKey); + + return [$cacheKey, $realCacheKey]; + } + + public function setResultCache(CacheItemPoolInterface $cache): QueryCacheProfile + { + return new QueryCacheProfile($this->lifetime, $this->cacheKey, $cache); + } + + public function setCacheKey(?string $cacheKey): self + { + return new QueryCacheProfile($this->lifetime, $cacheKey, $this->resultCache); + } + + public function setLifetime(int $lifetime): self + { + return new QueryCacheProfile($lifetime, $this->cacheKey, $this->resultCache); + } +} -- cgit v1.2.3