Fix UNLINK missing single-array argument normalization (#1687)

* Allow  to accept an array of keys as a single argument

* fix signature

* update changelog
This commit is contained in:
Adrian Brajkovic
2026-06-11 10:01:07 +02:00
committed by GitHub
parent 98180048d0
commit fc345603a4
5 changed files with 29 additions and 2 deletions
+3
View File
@@ -2,6 +2,9 @@
### Added
- Expose pipeline API via ClientInterface (#1686)
### Fixed
- Allow `UNLINK` to accept an array of keys as a single argument (#1687)
## v3.5.0 (2026-06-02)
### Added
- Added support for `XNACK` command (#1666)
+1 -1
View File
@@ -77,7 +77,7 @@ use Predis\Command\Redis\VADD;
* @method $this sort_ro(string $key, ?string $byPattern = null, ?LimitOffsetCount $limit = null, array $getPatterns = [], ?string $sorting = null, bool $alpha = false)
* @method $this ttl($key)
* @method $this type($key)
* @method $this unlink(string ...$keys)
* @method $this unlink(string[]|string $keyOrKeys, string ...$keys = null)
* @method $this append($key, $value)
* @method $this arcount(string $key)
* @method $this ardel(string $key, int ...$index)
+1 -1
View File
@@ -88,7 +88,7 @@ use Predis\Response\Status;
* @method array sort_ro(string $key, ?string $byPattern = null, ?LimitOffsetCount $limit = null, array $getPatterns = [], ?string $sorting = null, bool $alpha = false)
* @method int ttl(string $key)
* @method mixed type(string $key)
* @method int unlink(string ...$keys)
* @method int unlink(string[]|string $keyOrKeys, string ...$keys = null)
* @method int append(string $key, $value)
* @method int arcount(string $key)
* @method int ardel(string $key, int ...$index)
+10
View File
@@ -27,6 +27,16 @@ class UNLINK extends RedisCommand
return 'UNLINK';
}
/**
* {@inheritdoc}
*/
public function setArguments(array $arguments)
{
$arguments = self::normalizeArguments($arguments);
parent::setArguments($arguments);
}
public function prefixKeys($prefix)
{
$this->applyPrefixForAllArguments($prefix);
@@ -49,6 +49,20 @@ class UNLINK_Test extends PredisCommandTestCase
$this->assertSame($expected, $command->getArguments());
}
/**
* @group disconnected
*/
public function testFilterArgumentsAsSingleArray(): void
{
$arguments = [['key1', 'key2', 'key3']];
$expected = ['key1', 'key2', 'key3'];
$command = $this->getCommand();
$command->setArguments($arguments);
$this->assertSame($expected, $command->getArguments());
}
/**
* @group disconnected
*/