From 976e3674b4c7cb00e9bcfe55e16fca21e31fa796 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Tue, 18 Jun 2024 23:22:45 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- src/db/CapacitorStorage.php | 111 +++++++++++++++++------------------- 1 file changed, 52 insertions(+), 59 deletions(-) diff --git a/src/db/CapacitorStorage.php b/src/db/CapacitorStorage.php index 5f072e6..62a0237 100644 --- a/src/db/CapacitorStorage.php +++ b/src/db/CapacitorStorage.php @@ -148,22 +148,23 @@ EOT; } } + /** tester si le canal spécifié existe */ abstract function _exists(CapacitorChannel $channel): bool; - /** tester si le canal spécifié existe */ function exists(?string $channel): bool { return $this->_exists($this->getChannel($channel)); } + /** s'assurer que le canal spécifié existe */ function _ensureExists(CapacitorChannel $channel): void { $this->_create($channel); } - /** s'assurer que le canal spécifié existe */ function ensureExists(?string $channel): void { $this->_ensureExists($this->getChannel($channel)); } + /** supprimer le canal spécifié */ function _reset(CapacitorChannel $channel, bool $recreate=false): void { $this->db->exec([ "drop table if exists", @@ -173,11 +174,29 @@ EOT; if ($recreate) $this->_ensureExists($channel); } - /** supprimer le canal spécifié */ function reset(?string $channel, bool $recreate=false): void { $this->_reset($this->getChannel($channel), $recreate); } + /** + * charger une valeur dans le canal + * + * Après avoir calculé les valeurs des clés supplémentaires + * avec {@link CapacitorChannel::getItemValues()}, l'une des deux fonctions + * {@link CapacitorChannel::onCreate()} ou {@link CapacitorChannel::onUpdate()} + * est appelée en fonction du type d'opération: création ou mise à jour + * + * Ensuite, si $func !== null, la fonction est appelée avec la signature de + * {@link CapacitorChannel::onCreate()} ou {@link CapacitorChannel::onUpdate()} + * en fonction du type d'opération: création ou mise à jour + * + * Dans les deux cas, si la fonction retourne un tableau, il est utilisé pour + * modifier les valeurs insérées/mises à jour. De plus, $values obtient la + * valeur finale des données insérées/mises à jour + * + * @return int 1 si l'objet a été chargé ou mis à jour, 0 s'il existait + * déjà à l'identique dans le canal + */ function _charge(CapacitorChannel $channel, $item, $func, ?array $args, ?array &$values=null): int { $this->_create($channel); $tableName = $channel->getTableName(); @@ -267,29 +286,11 @@ EOT; return 1; } - /** - * charger une valeur dans le canal - * - * Après avoir calculé les valeurs des clés supplémentaires - * avec {@link CapacitorChannel::getItemValues()}, l'une des deux fonctions - * {@link CapacitorChannel::onCreate()} ou {@link CapacitorChannel::onUpdate()} - * est appelée en fonction du type d'opération: création ou mise à jour - * - * Ensuite, si $func !== null, la fonction est appelée avec la signature de - * {@link CapacitorChannel::onCreate()} ou {@link CapacitorChannel::onUpdate()} - * en fonction du type d'opération: création ou mise à jour - * - * Dans les deux cas, si la fonction retourne un tableau, il est utilisé pour - * modifier les valeurs insérées/mises à jour. De plus, $values obtient la - * valeur finale des données insérées/mises à jour - * - * @return int 1 si l'objet a été chargé ou mis à jour, 0 s'il existait - * déjà à l'identique dans le canal - */ function charge(?string $channel, $item, $func=null, ?array $args=null, ?array &$values=null): int { return $this->_charge($this->getChannel($channel), $item, $func, $args, $values); } + /** décharger les données du canal spécifié */ function _discharge(CapacitorChannel $channel, bool $reset=true): iterable { $this->_create($channel); $rows = $this->db()->all([ @@ -302,7 +303,6 @@ EOT; if ($reset) $this->_reset($channel); } - /** décharger les données du canal spécifié */ function discharge(?string $channel, bool $reset=true): iterable { return $this->_discharge($this->getChannel($channel), $reset); } @@ -316,6 +316,7 @@ EOT; $filter = $this->serialize($channel, $filter); } + /** indiquer le nombre d'éléments du canal spécifié */ function _count(CapacitorChannel $channel, $filter): int { $this->_create($channel); $this->verifixFilter($channel, $filter); @@ -326,11 +327,15 @@ EOT; ]); } - /** indiquer le nombre d'éléments du canal spécifié */ function count(?string $channel, $filter=null): int { return $this->_count($this->getChannel($channel), $filter); } + /** + * obtenir la ligne correspondant au filtre sur le canal spécifié + * + * si $filter n'est pas un tableau, il est transformé en ["id_" => $filter] + */ function _one(CapacitorChannel $channel, $filter): ?array { if ($filter === null) throw ValueException::null("filter"); $this->_create($channel); @@ -343,15 +348,15 @@ EOT; return $this->unserialize($channel, $row); } - /** - * obtenir la ligne correspondant au filtre sur le canal spécifié - * - * si $filter n'est pas un tableau, il est transformé en ["id_" => $filter] - */ function one(?string $channel, $filter): ?array { return $this->_one($this->getChannel($channel), $filter); } + /** + * obtenir les lignes correspondant au filtre sur le canal spécifié + * + * si $filter n'est pas un tableau, il est transformé en ["id_" => $filter] + */ function _all(CapacitorChannel $channel, $filter): iterable { $this->_create($channel); $this->verifixFilter($channel, $filter); @@ -365,15 +370,21 @@ EOT; } } - /** - * obtenir les lignes correspondant au filtre sur le canal spécifié - * - * si $filter n'est pas un tableau, il est transformé en ["id_" => $filter] - */ function all(?string $channel, $filter): iterable { return $this->_all($this->getChannel($channel), $filter); } + /** + * appeler une fonction pour chaque élément du canal spécifié. + * + * $filter permet de filtrer parmi les élements chargés + * + * $func est appelé avec la signature de {@link CapacitorChannel::onEach()} + * si la fonction retourne un tableau, il est utilisé pour mettre à jour la + * ligne + * + * @return int le nombre de lignes parcourues + */ function _each(CapacitorChannel $channel, $filter, $func, ?array $args): int { $this->_create($channel); if ($func === null) $func = "->onEach"; @@ -424,21 +435,22 @@ EOT; } } + function each(?string $channel, $filter, $func=null, ?array $args=null): int { + return $this->_each($this->getChannel($channel), $filter, $func, $args); + } + /** - * appeler une fonction pour chaque élément du canal spécifié. + * supprimer tous les éléments correspondant au filtre et pour lesquels la + * fonction retourne une valeur vraie si elle est spécifiée * * $filter permet de filtrer parmi les élements chargés * - * $func est appelé avec la signature de {@link CapacitorChannel::onEach()} + * $func est appelé avec la signature de {@link CapacitorChannel::onDelete()} * si la fonction retourne un tableau, il est utilisé pour mettre à jour la * ligne * * @return int le nombre de lignes parcourues */ - function each(?string $channel, $filter, $func=null, ?array $args=null): int { - return $this->_each($this->getChannel($channel), $filter, $func, $args); - } - function _delete(CapacitorChannel $channel, $filter, $func, ?array $args): int { $this->_create($channel); if ($func === null) $func = "->onDelete"; @@ -485,28 +497,9 @@ EOT; } } - /** - * supprimer tous les éléments correspondant au filtre et pour lesquels la - * fonction retourne une valeur vraie si elle est spécifiée - * - * $filter permet de filtrer parmi les élements chargés - * - * $func est appelé avec la signature de {@link CapacitorChannel::onDelete()} - * si la fonction retourne un tableau, il est utilisé pour mettre à jour la - * ligne - * - * @return int le nombre de lignes parcourues - */ function delete(?string $channel, $filter, $func=null, ?array $args=null): int { return $this->_delete($this->getChannel($channel), $filter, $func, $args); } abstract function close(): void; - - - - - - - }