From 15a5e7805f5f061896aa47601fbb6fc99599b726 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Sun, 7 Jul 2024 07:02:54 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- src/db/CapacitorChannel.php | 8 ++++++-- src/db/CapacitorStorage.php | 3 +++ src/output/std/StdMessenger.php | 3 ++- tbin/legacy-test-console.php | 12 +++++++++++- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/db/CapacitorChannel.php b/src/db/CapacitorChannel.php index bea0b23..4cb192a 100644 --- a/src/db/CapacitorChannel.php +++ b/src/db/CapacitorChannel.php @@ -168,9 +168,10 @@ class CapacitorChannel { * Cette méthode est utilisée par {@link Capacitor::charge()}. Si la clé * primaire est incluse (il s'agit généralement de "id_"), la ligne * correspondate est mise à jour si elle existe. - * * Retourner la clé primaire par cette méthode est l'unique moyen de * déclencher une mise à jour plutôt qu'une nouvelle création. + * + * Retourner [false] pour annuler le chargement */ function getItemValues($item): ?array { return null; @@ -249,7 +250,8 @@ class CapacitorChannel { * @param array $values la ligne à créer, calculée à partir de $item et des * valeurs retournées par {@link getItemValues()} * @return ?array le cas échéant, un tableau non null à merger dans $values et - * utilisé pour provisionner la ligne nouvellement créée + * utilisé pour provisionner la ligne nouvellement créée. + * Retourner [false] pour annuler le chargement (la ligne n'est pas créée) * * Si $item est modifié dans cette méthode, il est possible de le retourner * avec la clé "item" pour mettre à jour la ligne correspondante. @@ -275,6 +277,8 @@ class CapacitorChannel { * @return ?array null s'il ne faut pas mettre à jour la ligne. sinon, ce * tableau est mergé dans $values puis utilisé pour mettre à jour la ligne * existante + * Retourner [false] pour annuler le chargement (la ligne n'est pas mise à + * jour) * * - Il est possible de mettre à jour $item en le retourant avec la clé "item" * - La clé primaire (il s'agit généralement de "id_") ne peut pas être diff --git a/src/db/CapacitorStorage.php b/src/db/CapacitorStorage.php index fcc49fd..6d3b145 100644 --- a/src/db/CapacitorStorage.php +++ b/src/db/CapacitorStorage.php @@ -224,6 +224,7 @@ EOT; $initArgs = $args; func::ensure_func($initFunc, null, $initArgs); $values = func::call($initFunc, $item, ...$initArgs); + if ($values === [false]) return 0; $row = cl::merge( $channel->getSum("item", $item), @@ -273,6 +274,7 @@ EOT; } $updates = func::call($initFunc, $item, $values, $pvalues, ...$initArgs); + if ($updates === [false]) return 0; if (is_array($updates) && $updates) { if ($insert === null) $insert = false; if (!array_key_exists("modified_", $updates)) { @@ -285,6 +287,7 @@ EOT; if ($func !== null) { func::ensure_func($func, $channel, $args); $updates = func::call($func, $item, $values, $pvalues, ...$args); + if ($updates === [false]) return 0; if (is_array($updates) && $updates) { if ($insert === null) $insert = false; if (!array_key_exists("modified_", $updates)) { diff --git a/src/output/std/StdMessenger.php b/src/output/std/StdMessenger.php index d108c0d..456dbfd 100644 --- a/src/output/std/StdMessenger.php +++ b/src/output/std/StdMessenger.php @@ -401,7 +401,8 @@ class StdMessenger implements _IMessenger { $valueContent[] = $value; } } - if (count($valueContent) == 1) $content = $valueContent[0]; + if ($valueContent === null) $content = null; + elseif (count($valueContent) == 1) $content = $valueContent[0]; else $content = $valueContent; } elseif ($content instanceof Throwable || $content instanceof ExceptionShadow) { $exceptions[] = $content; diff --git a/tbin/legacy-test-console.php b/tbin/legacy-test-console.php index 39c4307..03bf204 100755 --- a/tbin/legacy-test-console.php +++ b/tbin/legacy-test-console.php @@ -242,7 +242,17 @@ Application::run(new class extends Application { $msg->info(["userException1 message", $u1]); $msg->info(["userException2 message", $u2]); }); - $msg->title("sans message", function ($msg) use ($e, $u1, $u2) { + $msg->title("sans message 1", function ($msg) use ($e, $u1, $u2) { + $msg->info([$e, null]); + $msg->info([$u1, null]); + $msg->info([$u2, null]); + }); + $msg->title("sans message 2", function ($msg) use ($e, $u1, $u2) { + $msg->info([$e]); + $msg->info([$u1]); + $msg->info([$u2]); + }); + $msg->title("sans message 3", function ($msg) use ($e, $u1, $u2) { $msg->info($e); $msg->info($u1); $msg->info($u2);