From 547e72e7e82be2f4dcc278b0ca8dbf842174f63b Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Thu, 9 Nov 2023 10:34:36 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- src/output/Output.php | 12 +++--------- src/output/TOutputObjectAsCsv.php | 2 +- src/output/TtyOutput.php | 11 ++++------- src/output/WebOutput.php | 6 ++++-- src/schema/Schema.php | 28 +++++++++++++++++++--------- src/schema/{ => input}/FormInput.php | 4 +++- src/schema/{ => input}/GetInput.php | 4 +++- src/schema/{ => input}/Input.php | 2 +- src/schema/{ => input}/PostInput.php | 4 +++- src/schema/values/ScalarValue.php | 6 +++--- src/schema/values/TValue.php | 7 +++---- 11 files changed, 47 insertions(+), 39 deletions(-) rename src/schema/{ => input}/FormInput.php (90%) rename src/schema/{ => input}/GetInput.php (88%) rename src/schema/{ => input}/Input.php (95%) rename src/schema/{ => input}/PostInput.php (88%) diff --git a/src/output/Output.php b/src/output/Output.php index a716ae1..18b58b5 100644 --- a/src/output/Output.php +++ b/src/output/Output.php @@ -5,18 +5,12 @@ namespace nur\sery\output; * Class Output: une destination pour écrire du contenu */ abstract class Output { - abstract function print($value): void; - - /** afficher un tag, dont la fonction n'est pas d'être affiché à l'utilisateur, mais de structuer l'information affichée à l'utilisateur */ - function printTag(?array $tag): void { - } - - /** afficher un contenu destiné à être affiché à l'utilisateur */ - function printContent(?array $content): void { - } + /** afficher le contenu spécifié */ + abstract function print(?array $contents): void; /** afficher une ligne de donnée au format CSV */ abstract function printCsv(?array $row): void; + /** afficher un objet */ abstract function printObject($object): void; } diff --git a/src/output/TOutputObjectAsCsv.php b/src/output/TOutputObjectAsCsv.php index 89fff90..c5c61be 100644 --- a/src/output/TOutputObjectAsCsv.php +++ b/src/output/TOutputObjectAsCsv.php @@ -6,6 +6,6 @@ trait TOutputObjectAsCsv { if ($object === null) return; if (is_object($object)) $object = (array)$object; if (is_array($object)) $this->printCsv($object); - else $this->printContent([$object]); + else $this->print([$object]); } } diff --git a/src/output/TtyOutput.php b/src/output/TtyOutput.php index 61c1ee9..5abc156 100644 --- a/src/output/TtyOutput.php +++ b/src/output/TtyOutput.php @@ -1,16 +1,13 @@ indique ce qu'est la valeur qu'on vérifixe +# retourne MISSING (la valeur n'existe pas) +# NULL (la valeur existe mais est nulle) +# STRING (la valeur est une chaine qu'il faut parser) +# INVALID (la valeur n'est pas du bon type et il n'est pas possible de la convertir) +# VALID (la valeur est dans le bon type) +# extract() et [extractor_func] --> si analyze() retourne STRING, extraire la +# chaine à parser +# parse() et [parser_func] --> parser la chaine et retourner la valeur +# format() et [formatter_func] --> formatter la valeur et retourner une chaine class Schema { /** - * créer une nouvelle instance de cette classe à partir d'un schéma non + * créer une nouvelle instance de cette classe à partir d'un schéma + * + * @param bool $normalized indique si le schéma est normalisé * normalisé */ - static function new(&$md, $schema): self { - if ($md === null) $md = new static($schema); + static function new(&$md, $schema, bool $normalized=false): self { + if ($md === null) $md = new static($schema, !$normalized); return $md; } - /** obtenir une instance de cette classe à partir d'un schéma normalisé */ - static function with(array $schema): self { - return new static($schema, false); - } - static function normalize($schema): array { if ($schema === null) throw new SchemaException("schema is required"); elseif (!is_array($schema)) $schema = [$schema]; diff --git a/src/schema/FormInput.php b/src/schema/input/FormInput.php similarity index 90% rename from src/schema/FormInput.php rename to src/schema/input/FormInput.php index 86a8414..dc3a9de 100644 --- a/src/schema/FormInput.php +++ b/src/schema/input/FormInput.php @@ -1,5 +1,7 @@ schema = $schema; $this->reset($value, $key, $verifix); @@ -37,9 +40,6 @@ class ScalarValue implements IValue { return $this->type; } - /** @var ?Result résultat de l'analyse de la valeur */ - protected $result; - function exists(): bool { return $this->type()->exists($this->value, $this->key); } diff --git a/src/schema/values/TValue.php b/src/schema/values/TValue.php index 1c7bbc7..569da10 100644 --- a/src/schema/values/TValue.php +++ b/src/schema/values/TValue.php @@ -5,14 +5,13 @@ use nur\sery\schema\Schema; trait TValue { /** @var array schéma normalisé de cette valeur */ - protected $schema; + protected array $schema; /** @var Schema */ - protected $md; + protected Schema $md; function md(): Schema { - if ($this->md === null) $this->md = Schema::with($this->schema); - return $this->md; + return Schema::new($this->md, $this->schema, true); } /** @var mixed valeur ou référence d'un tableau contenant la valeur */