modifs.mineures sans commentaires
This commit is contained in:
parent
95b0263969
commit
810ead58d6
49
php/src/cache/CacheFile.php
vendored
49
php/src/cache/CacheFile.php
vendored
@ -232,38 +232,29 @@ class CacheFile extends SharedFile {
|
||||
$this->start = null;
|
||||
$this->duration = null;
|
||||
$this->data = null;
|
||||
$updateData = true;
|
||||
}
|
||||
if (!$key && !$external) {
|
||||
if ($updateData) {
|
||||
# calculer la valeur
|
||||
try {
|
||||
if ($source !== null) $data = $source->compute();
|
||||
else $data = $this->compute();
|
||||
} catch (Exception $e) {
|
||||
# le fichier n'est pas mis à jour, mais ce n'est pas gênant: lors
|
||||
# des futurs appels, l'exception continuera d'être lancée ou la
|
||||
# valeur sera finalement mise à jour
|
||||
throw $e;
|
||||
}
|
||||
} else {
|
||||
$data = $this->data;
|
||||
# calculer la valeur
|
||||
try {
|
||||
if ($source !== null) $data = $source->compute();
|
||||
else $data = $this->compute();
|
||||
} catch (Exception $e) {
|
||||
# le fichier n'est pas mis à jour, mais ce n'est pas gênant: lors
|
||||
# des futurs appels, l'exception continuera d'être lancée ou la
|
||||
# valeur sera finalement mise à jour
|
||||
throw $e;
|
||||
}
|
||||
if ($this->shouldCache($data)) $this->data = $data;
|
||||
else $this->data = $data = null;
|
||||
} else {
|
||||
if ($updateData) {
|
||||
# calculer la valeur
|
||||
try {
|
||||
$data = $source->compute();
|
||||
} catch (Exception $e) {
|
||||
# le fichier n'est pas mis à jour, mais ce n'est pas gênant: lors
|
||||
# des futurs appels, l'exception continuera d'être lancée ou la
|
||||
# valeur sera finalement mise à jour
|
||||
throw $e;
|
||||
}
|
||||
} else {
|
||||
$data = $source->load();
|
||||
} elseif ($source !== null) {
|
||||
# calculer la valeur
|
||||
try {
|
||||
$data = $source->compute();
|
||||
} catch (Exception $e) {
|
||||
# le fichier n'est pas mis à jour, mais ce n'est pas gênant: lors
|
||||
# des futurs appels, l'exception continuera d'être lancée ou la
|
||||
# valeur sera finalement mise à jour
|
||||
throw $e;
|
||||
}
|
||||
if ($this->shouldCache($data)) {
|
||||
$data = $source->save($data);
|
||||
@ -272,10 +263,12 @@ class CacheFile extends SharedFile {
|
||||
$source->delete();
|
||||
$data = null;
|
||||
}
|
||||
} else {
|
||||
$data = null;
|
||||
}
|
||||
} elseif (!$key && !$external) {
|
||||
$data = $this->data;
|
||||
} elseif ($source->exists()) {
|
||||
} elseif ($source !== null && $source->exists()) {
|
||||
$data = $source->load();
|
||||
} else {
|
||||
$data = null;
|
||||
|
20
php/tests/cache/cacheTest.php
vendored
20
php/tests/cache/cacheTest.php
vendored
@ -11,16 +11,6 @@ class cacheTest extends _TestCase {
|
||||
["a" => 1, "b" => 2],
|
||||
];
|
||||
|
||||
function gendata() {
|
||||
msg::note("gendata");
|
||||
foreach (self::DATA as $key => $item) {
|
||||
msg::info("yield $key");
|
||||
yield $key => $item;
|
||||
sleep(2);
|
||||
}
|
||||
msg::note("fin gendata");
|
||||
}
|
||||
|
||||
function _testRows(iterable $rows, int $expectedCount) {
|
||||
$count = 0;
|
||||
foreach ($rows as $key => $row) {
|
||||
@ -70,7 +60,15 @@ class cacheTest extends _TestCase {
|
||||
|
||||
function testGetGenerator() {
|
||||
$this->_testGet("getGenerator", 3, function () {
|
||||
return $this->gendata();
|
||||
return static function () {
|
||||
msg::note("gendata");
|
||||
foreach (self::DATA as $key => $item) {
|
||||
msg::info("yield $key");
|
||||
yield $key => $item;
|
||||
sleep(2);
|
||||
}
|
||||
msg::note("fin gendata");
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user