Skip to content

Commit 833ce5a

Browse files
authored
feat: add setCachePrefix to LaravelSequenceResolver (#50) (#51)
1 parent b8f5f84 commit 833ce5a

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/LaravelSequenceResolver.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ class LaravelSequenceResolver implements SequenceResolver
2121
*/
2222
protected $cache;
2323

24+
/**
25+
* The cache prefix.
26+
*
27+
* @var string
28+
*/
29+
protected $prefix;
30+
2431
/**
2532
* Init resolve instance, must connectioned.
2633
*/
@@ -34,12 +41,22 @@ public function __construct(Repository $cache)
3441
*/
3542
public function sequence(int $currentTime)
3643
{
37-
$key = $currentTime;
44+
$key = $this->prefix.$currentTime;
3845

3946
if ($this->cache->add($key, 1, 10)) {
4047
return 0;
4148
}
4249

4350
return $this->cache->increment($key, 1);
4451
}
52+
53+
/**
54+
* Set cache prefix.
55+
*/
56+
public function setCachePrefix(string $prefix)
57+
{
58+
$this->prefix = $prefix;
59+
60+
return $this;
61+
}
4562
}

tests/LaravelSequenceResolverTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,14 @@ public function testBasic()
2929
$this->assertEquals(1, $laravel->sequence(1));
3030
$this->assertEquals(0, $laravel->sequence(1));
3131
}
32+
33+
public function testSetCachePrefix()
34+
{
35+
$mock = $this->createStub(Repository::class);
36+
37+
$snowflake = new LaravelSequenceResolver($mock);
38+
$snowflake->setCachePrefix('foo');
39+
40+
$this->assertEquals('foo', $this->invokeProperty($snowflake, 'prefix'));
41+
}
3242
}

0 commit comments

Comments
 (0)