From 828b8dc78deef60f486ed74ff97774754014c0fb Mon Sep 17 00:00:00 2001 From: Marc Lemay Date: Mon, 2 Sep 2024 14:39:46 +0200 Subject: [PATCH] fix phpstan --- src/Client/PredisClient.php | 27 +++++++++++++-------------- src/Om/RedisObjectManager.php | 7 +++---- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/Client/PredisClient.php b/src/Client/PredisClient.php index 3abcb45..b171446 100644 --- a/src/Client/PredisClient.php +++ b/src/Client/PredisClient.php @@ -5,6 +5,7 @@ namespace Talleu\RedisOm\Client; use Predis\Client as Predis; +use Predis\Connection\StreamConnection; use Talleu\RedisOm\Client\Helper\Converter; use Talleu\RedisOm\Command\PropertyToIndex; use Talleu\RedisOm\Exception\BadPropertyConfigurationException; @@ -23,7 +24,9 @@ public function __construct(protected ?Predis $redis = null) public function createPersistentConnection(?string $host = null, ?int $port = null, ?int $timeout = 0): void { - $parameters = $this->redis->getConnection()->getParameters()->toArray(); + /** @var StreamConnection $connection */ + $connection = $this->redis->getConnection(); + $parameters = $connection->getParameters()->toArray(); $this->redis = new Predis([ 'scheme' => 'tcp', @@ -60,13 +63,7 @@ private function getLastError() */ public function hGetAll(string $key): array { - $result = $this->redis->hgetall(Converter::prefix($key)); - - if ($result === false) { - $this->handleError(__METHOD__, $this->getLastError()); - } - - return $result; + return $this->redis->hgetall(Converter::prefix($key)); } /** @@ -249,13 +246,16 @@ public function count(string $prefixKey, array $criterias = []): int public function scanKeys(string $prefixKey): array { $keys = []; - $iterator = null; - while ($iterator !== 0) { + $iterator = 0; + do { $scans = $this->redis->scan($iterator, [sprintf('%s*', Converter::prefix($prefixKey))]); - foreach ($scans as $scan) { - $keys[] = $scan; + if (!empty($scans)) { + foreach ($scans as $scan) { + $keys[] = $scan; + } } - } + /** @phpstan-ignore-next-line */ + } while ($iterator !== 0); return $keys; } @@ -378,7 +378,6 @@ public function searchLike(string $prefixKey, string $search, ?string $format = if (!is_array($result)) { $this->handleError(RedisCommands::SEARCH->value, 'Unexpected result type from Redis: ' . gettype($result)); - return []; } return $this->extractRedisData($result, $format, $numberOfResults); diff --git a/src/Om/RedisObjectManager.php b/src/Om/RedisObjectManager.php index 4c7ecb1..bc88999 100644 --- a/src/Om/RedisObjectManager.php +++ b/src/Om/RedisObjectManager.php @@ -97,7 +97,7 @@ public function detach(object $object): void $objectMapper = $this->getEntityMapper($object); $key = sprintf('%s:%s', $objectMapper->prefix ?: get_class($object), $object->{$identifier->getName()}); - $persisterClassName = get_class($this->registerPersister($object)); + $persisterClassName = get_class($this->registerPersister($objectMapper)); foreach ($this->objectsToFlush[$persisterClassName] as $operation => $objectsToFlush) { foreach ($objectsToFlush as $redisKey => $objectToFlush) { if ($redisKey === $key) { @@ -160,7 +160,7 @@ public function contains(object $object): bool $identifier = $this->keyGenerator->getIdentifier(new \ReflectionClass($object)); $objectMapper = $this->getEntityMapper($object); $key = sprintf('%s:%s', $objectMapper->prefix ?: get_class($object), $object->{$identifier->getName()}); - $persisterClassName = get_class($this->registerPersister($object)); + $persisterClassName = get_class($this->registerPersister($objectMapper)); foreach ($this->objectsToFlush[$persisterClassName] as $operation => $objectsToFlush) { foreach ($objectsToFlush as $redisKey => $objectToFlush) { if ($redisKey === $key) { @@ -193,11 +193,10 @@ protected function getEntityMapper(string|object $object): Entity return $redisEntity; } - protected function registerPersister(object $object): PersisterInterface + protected function registerPersister(Entity $object): PersisterInterface { $persister = ($object->format === RedisFormat::JSON->value ? new JsonPersister(redis: $this->redisClient) : new HashPersister(redis: $this->redisClient)); - $persisterClass = $persister::class; if (!array_key_exists($persisterClass, $this->persisters)) { $this->persisters[$persisterClass] = $persister;