8000 [Cache] Respect $save option in ChainAdapter · symfony/symfony@b14aa77 · GitHub
[go: up one dir, main page]

Skip to content

Commit b14aa77

Browse files
[Cache] Respect $save option in ChainAdapter
1 parent 5e8de1e commit b14aa77

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/Symfony/Component/Cache/Adapter/ChainAdapter.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,17 @@ static function ($sourceItem, $item, $sourceMetadata = null) use ($defaultLifeti
9191
*/
9292
public function get(string $key, callable $callback, float $beta = null, array &$metadata = null)
9393
{
94+
$doSave = true;
95+
$callback = static function (CacheItem $item, bool &$save) use ($callback, &$doSave) {
96+
$value = $callback($item, $save);
97+
$doSave = $save;
98+
99+
return $value;
100+
};
101+
94102
$lastItem = null;
95103
$i = 0;
96-
$wrap = function (CacheItem $item = null) use ($key, $callback, $beta, &$wrap, &$i, &$lastItem, &$metadata) {
104+
$wrap = function (CacheItem $item = null, bool &$save = true) use ($key, $callback, $beta, &$wrap, &$i, &$doSave, &$lastItem, &$metadata) {
97105
$adapter = $this->adapters[$i];
98106
if (isset($this->adapters[++$i])) {
99107
$callback = $wrap;
@@ -107,6 +115,7 @@ public function get(string $key, callable $callback, float $beta = null, array &
107115
if (null !== $item) {
108116
($this->syncItem)($lastItem = $lastItem ?? $item, $item, $metadata);
109117
}
118+
$save = $doSave;
110119

111120
return $value;
112121
};

0 commit comments

Comments
 (0)
0