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 --- vendor/doctrine/dbal/src/Cache/ArrayResult.php | 101 +++++++++++++++++++++ vendor/doctrine/dbal/src/Cache/CacheException.php | 12 +++ .../dbal/src/Cache/Exception/NoCacheKey.php | 16 ++++ .../Cache/Exception/NoResultDriverConfigured.php | 16 ++++ .../doctrine/dbal/src/Cache/QueryCacheProfile.php | 91 +++++++++++++++++++ 5 files changed, 236 insertions(+) create mode 100644 vendor/doctrine/dbal/src/Cache/ArrayResult.php create mode 100644 vendor/doctrine/dbal/src/Cache/CacheException.php create mode 100644 vendor/doctrine/dbal/src/Cache/Exception/NoCacheKey.php create mode 100644 vendor/doctrine/dbal/src/Cache/Exception/NoResultDriverConfigured.php create mode 100644 vendor/doctrine/dbal/src/Cache/QueryCacheProfile.php (limited to 'vendor/doctrine/dbal/src/Cache') diff --git a/vendor/doctrine/dbal/src/Cache/ArrayResult.php b/vendor/doctrine/dbal/src/Cache/ArrayResult.php new file mode 100644 index 0000000..65b8652 --- /dev/null +++ b/vendor/doctrine/dbal/src/Cache/ArrayResult.php @@ -0,0 +1,101 @@ +> $data */ + public function __construct(private array $data) + { + $this->columnCount = $data === [] ? 0 : count($data[0]); + } + + public function fetchNumeric(): array|false + { + $row = $this->fetch(); + + if ($row === false) { + return false; + } + + return array_values($row); + } + + public function fetchAssociative(): array|false + { + return $this->fetch(); + } + + public function fetchOne(): mixed + { + $row = $this->fetch(); + + if ($row === false) { + return false; + } + + return reset($row); + } + + /** + * {@inheritDoc} + */ + public function fetchAllNumeric(): array + { + return FetchUtils::fetchAllNumeric($this); + } + + /** + * {@inheritDoc} + */ + public function fetchAllAssociative(): array + { + return FetchUtils::fetchAllAssociative($this); + } + + /** + * {@inheritDoc} + */ + public function fetchFirstColumn(): array + { + return FetchUtils::fetchFirstColumn($this); + } + + public function rowCount(): int + { + return count($this->data); + } + + public function columnCount(): int + { + return $this->columnCount; + } + + public function free(): void + { + $this->data = []; + } + + /** @return array|false */ + private function fetch(): array|false + { + if (! isset($this->data[$this->num])) { + return false; + } + + return $this->data[$this->num++]; + } +} diff --git a/vendor/doctrine/dbal/src/Cache/CacheException.php b/vendor/doctrine/dbal/src/Cache/CacheException.php new file mode 100644 index 0000000..a6913ed --- /dev/null +++ b/vendor/doctrine/dbal/src/Cache/CacheException.php @@ -0,0 +1,12 @@ +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