Skip to content

Commit 2bbf4ba

Browse files
authored
Change cache key for getIdentityFlagsFromApi (#62)
* Change cache key for getIdentityFlagsFromApi getIdentityFlagsFromApi should not be using the Global cache key prefix * 🔧 chore(composer.json): enable php-http/discovery plugin to allow automatic discovery of HTTP clients 🐛 fix(Flagsmith.php): add cache key generation for identities to improve caching efficiency 🐛 fix(IdentitiesGenerator.php): add method to generate cache key for identities based on identifier and traits to ensure uniqueness
1 parent acf5e5c commit 2bbf4ba

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

composer.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,10 @@
3030
"Flagsmith\\": "src",
3131
"FlagsmithTest\\": "tests"
3232
}
33+
},
34+
"config": {
35+
"allow-plugins": {
36+
"php-http/discovery": true
37+
}
3338
}
3439
}

src/Flagsmith.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,9 @@ private function getIdentityFlagsFromApi(string $identifier, ?object $traits): F
430430
{
431431
try {
432432
$data = IdentitiesGenerator::generateIdentitiesData($identifier, $traits);
433+
$cacheKey = IdentitiesGenerator::generateIdentitiesCacheKey($identifier, $traits);
433434
$apiFlags = $this->cachedCall(
434-
'Global',
435+
$cacheKey,
435436
'POST',
436437
$this->identities_url,
437438
$data

src/Utils/IdentitiesGenerator.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,10 @@ public static function generateIdentitiesData(string $identifier, ?object $trait
1919

2020
return $identities;
2121
}
22+
23+
public static function generateIdentitiesCacheKey(string $identifier, ?object $traits)
24+
{
25+
$hashedTraits = $traits !== null ? '.'.sha1(serialize($traits)) : '';
26+
return 'Identity.'.$identifier.$hashedTraits;
27+
}
2228
}

0 commit comments

Comments
 (0)