From 104da4515b4a6e40c2a8f18c9439940bd4d15af5 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Sun, 7 Jul 2024 14:25:10 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- src/db/CapacitorChannel.php | 27 ++++++++++++++++++++++----- src/db/CapacitorStorage.php | 2 +- src/file/Stream.php | 12 +++++++++++- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/db/CapacitorChannel.php b/src/db/CapacitorChannel.php index 4cb192a..ae62d82 100644 --- a/src/db/CapacitorChannel.php +++ b/src/db/CapacitorChannel.php @@ -20,9 +20,23 @@ class CapacitorChannel { const EACH_COMMIT_THRESHOLD = 100; - static function verifix_name(?string $name): string { - if ($name === null) $name = "default"; - return strtolower($name); + static function verifix_name(?string &$name, ?string &$tableName=null): void { + if ($name !== null) { + $name = strtolower($name); + if ($tableName === null) $tableName = "${name}_channel"; + } else { + $name = static::class; + if ($name === self::class) { + $name = "default"; + if ($tableName === null) $tableName = "default_channel"; + } else { + $name = preg_replace('/^.*\\\\/', "", $name); + $name = preg_replace('/Channel$/', "", $name); + $name = lcfirst($name); + if ($tableName === null) $tableName = str::camel2us($name); + $name = strtolower($name); + } + } } protected static function verifix_eachCommitThreshold(?int $eachCommitThreshold): ?int { @@ -32,8 +46,11 @@ class CapacitorChannel { } function __construct(?string $name=null, ?int $eachCommitThreshold=null, ?bool $manageTransactions=null) { - $this->name = self::verifix_name($name ?? static::NAME); - $this->tableName = static::TABLE_NAME ?? ($this->name."_channel"); + $name ??= static::NAME; + $tableName ??= static::TABLE_NAME; + self::verifix_name($name, $tableName); + $this->name = $name; + $this->tableName = $tableName; $this->manageTransactions = $manageTransactions ?? static::MANAGE_TRANSACTIONS; $this->eachCommitThreshold = self::verifix_eachCommitThreshold($eachCommitThreshold); $this->setup = false; diff --git a/src/db/CapacitorStorage.php b/src/db/CapacitorStorage.php index 6d3b145..1ee00fc 100644 --- a/src/db/CapacitorStorage.php +++ b/src/db/CapacitorStorage.php @@ -22,7 +22,7 @@ abstract class CapacitorStorage { } protected function getChannel(?string $name): CapacitorChannel { - $name = CapacitorChannel::verifix_name($name); + CapacitorChannel::verifix_name($name); $channel = $this->channels[$name] ?? null; if ($channel === null) { $channel = $this->addChannel(new CapacitorChannel($name)); diff --git a/src/file/Stream.php b/src/file/Stream.php index c601623..f9152e8 100644 --- a/src/file/Stream.php +++ b/src/file/Stream.php @@ -162,7 +162,7 @@ class Stream extends AbstractIterator implements IReader, IWriter { const DEFAULT_CSV_FLAVOUR = ref_csv::OO_FLAVOUR; - /** @var array paramètres pour la lecture et l'écriture de flux au format CSV */ + /** @var string paramètres pour la lecture et l'écriture de flux au format CSV */ protected $csvFlavour; function setCsvFlavour(?string $flavour): void { @@ -315,6 +315,11 @@ class Stream extends AbstractIterator implements IReader, IWriter { return unserialize(...$args); } + function decodeJson(bool $close=true, bool $alreadyLocked=false) { + $contents = $this->getContents($close, $alreadyLocked); + return json_decode($contents, true, 512, JSON_THROW_ON_ERROR); + } + ############################################################################# # Iterator @@ -456,6 +461,11 @@ class Stream extends AbstractIterator implements IReader, IWriter { $this->putContents(serialize($object), $close, $alreadyLocked); } + function encodeJson($data, bool $close=true, bool $alreadyLocked=false): void { + $contents = json_encode($data, JSON_UNESCAPED_SLASHES + JSON_UNESCAPED_UNICODE); + $this->putContents($contents, $close, $alreadyLocked); + } + /** * annuler une tentative d'écriture commencée avec {@link self::canWrite()} */