modifs.mineures sans commentaires
This commit is contained in:
parent
80fab7e636
commit
587df17273
@ -1,18 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib;
|
namespace nulib;
|
||||||
|
|
||||||
use nulib\A;
|
use nulib\app\cli\Application;
|
||||||
use nulib\app\LockFile;
|
use nulib\app\LockFile;
|
||||||
use nulib\app\RunFile;
|
use nulib\app\RunFile;
|
||||||
use nulib\cl;
|
|
||||||
use nulib\ExitError;
|
|
||||||
use nulib\os\path;
|
use nulib\os\path;
|
||||||
use nulib\os\sh;
|
use nulib\os\sh;
|
||||||
use nulib\php\func;
|
use nulib\php\func;
|
||||||
use nulib\str;
|
|
||||||
use nulib\ValueException;
|
|
||||||
use nur\cli\Application as nur_Application;
|
use nur\cli\Application as nur_Application;
|
||||||
use nulib\app\cli\Application;
|
|
||||||
|
|
||||||
class app {
|
class app {
|
||||||
private static function isa_Application($app): bool {
|
private static function isa_Application($app): bool {
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
namespace nulib\app\cli;
|
namespace nulib\app\cli;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use nulib\app;
|
||||||
use nulib\app\RunFile;
|
use nulib\app\RunFile;
|
||||||
use nulib\ExitError;
|
use nulib\ExitError;
|
||||||
use nulib\ext\yaml;
|
use nulib\ext\yaml;
|
||||||
@ -13,7 +14,6 @@ use nulib\ValueException;
|
|||||||
use nur\cli\ArgsException;
|
use nur\cli\ArgsException;
|
||||||
use nur\cli\ArgsParser;
|
use nur\cli\ArgsParser;
|
||||||
use nur\config;
|
use nur\config;
|
||||||
use nulib\app;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Application: application de base
|
* Class Application: application de base
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\php\access;
|
namespace nulib\php\access;
|
||||||
|
|
||||||
use nulib\cl;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class GetAccess: accès à une valeur de $_GET
|
* Class GetAccess: accès à une valeur de $_GET
|
||||||
*/
|
*/
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\php\access;
|
namespace nulib\php\access;
|
||||||
|
|
||||||
use ReflectionClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface IAccess: abstraction d'un accès complet à une valeur
|
* Interface IAccess: abstraction d'un accès complet à une valeur
|
||||||
*/
|
*/
|
||||||
|
@ -3,7 +3,6 @@ namespace nulib\php\access;
|
|||||||
|
|
||||||
use ArrayAccess;
|
use ArrayAccess;
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\ref\schema\ref_schema;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class KeyAccess: accès
|
* Class KeyAccess: accès
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\php\access;
|
namespace nulib\php\access;
|
||||||
|
|
||||||
use nulib\cl;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class PostAccess: accès à une valeur de $_POST
|
* Class PostAccess: accès à une valeur de $_POST
|
||||||
*/
|
*/
|
||||||
|
@ -5,7 +5,6 @@ use Exception;
|
|||||||
use Generator;
|
use Generator;
|
||||||
use Iterator;
|
use Iterator;
|
||||||
use IteratorAggregate;
|
use IteratorAggregate;
|
||||||
use nulib\php\ICloseable;
|
|
||||||
use nulib\StopException;
|
use nulib\StopException;
|
||||||
use nulib\ValueException;
|
use nulib\ValueException;
|
||||||
use Traversable;
|
use Traversable;
|
||||||
|
@ -1,98 +1,67 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema;
|
namespace nulib\schema;
|
||||||
|
|
||||||
|
use nulib\ref\schema\ref_analyze;
|
||||||
use nulib\ValueException;
|
use nulib\ValueException;
|
||||||
|
|
||||||
class ConsolidatedResult extends Result {
|
class ConsolidatedResult extends Result {
|
||||||
function addMissingMessage(Wrapper $wrapper): void {
|
protected int $highestResult;
|
||||||
$this->resultAvailable = true;
|
|
||||||
$this->present = false;
|
function reset(): void {
|
||||||
$this->available = false;
|
parent::reset();
|
||||||
$this->null = false;
|
$this->highestResult = -1;
|
||||||
$this->valid = false;
|
}
|
||||||
$this->messageKey = "missing";
|
|
||||||
|
protected function _addMessage(Wrapper $wrapper, $prefix=null): void {
|
||||||
$result = $wrapper->getResult();
|
$result = $wrapper->getResult();
|
||||||
$resultException = $result->exception;
|
|
||||||
$resultMessage = $result->message;
|
|
||||||
if ($resultException !== null) {
|
|
||||||
$tmessage = ValueException::get_message($resultException);
|
|
||||||
if ($tmessage) {
|
|
||||||
if ($resultMessage !== null) $resultMessage .= ": ";
|
|
||||||
$resultMessage .= $tmessage;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$message = $this->message;
|
$message = $this->message;
|
||||||
if ($message) $message .= "\n";
|
if ($message) $message .= "\n";
|
||||||
$message .= $resultMessage;
|
if ($prefix !== null) $message .= "$prefix: ";
|
||||||
|
$message .= $result->message;
|
||||||
$this->message = $message;
|
$this->message = $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
function addUnavailableMessage(Wrapper $wrapper): void {
|
function addMissingMessage(Wrapper $wrapper, $prefix=null): void {
|
||||||
$this->resultAvailable = true;
|
if ($this->highestResult < ref_analyze::MISSING) {
|
||||||
$this->present = true;
|
$this->present = false;
|
||||||
$this->available = false;
|
$this->available = false;
|
||||||
$this->null = false;
|
$this->null = false;
|
||||||
$this->valid = false;
|
$this->valid = false;
|
||||||
$this->messageKey = "unavailable";
|
$this->messageKey = "missing";
|
||||||
$result = $wrapper->getResult();
|
|
||||||
$resultException = $result->exception;
|
|
||||||
$resultMessage = $result->message;
|
|
||||||
if ($resultException !== null) {
|
|
||||||
$tmessage = ValueException::get_message($resultException);
|
|
||||||
if ($tmessage) {
|
|
||||||
if ($resultMessage !== null) $resultMessage .= ": ";
|
|
||||||
$resultMessage .= $tmessage;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$message = $this->message;
|
$this->_addMessage($wrapper, $prefix);
|
||||||
if ($message) $message .= "\n";
|
|
||||||
$message .= $resultMessage;
|
|
||||||
$this->message = $message;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addNullMessage(Wrapper $wrapper): void {
|
function addUnavailableMessage(Wrapper $wrapper, $prefix=null): void {
|
||||||
$this->resultAvailable = true;
|
if ($this->highestResult < ref_analyze::UNAVAILABLE) {
|
||||||
$this->present = true;
|
$this->present = true;
|
||||||
$this->available = true;
|
$this->available = false;
|
||||||
$this->null = true;
|
$this->null = false;
|
||||||
$this->valid = false;
|
$this->valid = false;
|
||||||
$this->messageKey = "null";
|
$this->messageKey = "unavailable";
|
||||||
$result = $wrapper->getResult();
|
|
||||||
$resultException = $result->exception;
|
|
||||||
$resultMessage = $result->message;
|
|
||||||
if ($resultException !== null) {
|
|
||||||
$tmessage = ValueException::get_message($resultException);
|
|
||||||
if ($tmessage) {
|
|
||||||
if ($resultMessage !== null) $resultMessage .= ": ";
|
|
||||||
$resultMessage .= $tmessage;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$message = $this->message;
|
$this->_addMessage($wrapper, $prefix);
|
||||||
if ($message) $message .= "\n";
|
|
||||||
$message .= $resultMessage;
|
|
||||||
$this->message = $message;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addInvalidMessage(Wrapper $wrapper): void {
|
function addNullMessage(Wrapper $wrapper, $prefix=null): void {
|
||||||
$this->resultAvailable = true;
|
if ($this->highestResult < ref_analyze::NULL) {
|
||||||
$this->present = true;
|
$this->present = true;
|
||||||
$this->available = true;
|
$this->available = true;
|
||||||
$this->null = false;
|
$this->null = true;
|
||||||
$this->valid = false;
|
$this->valid = false;
|
||||||
$this->messageKey = "invalid";
|
$this->messageKey = "null";
|
||||||
$result = $wrapper->getResult();
|
|
||||||
$resultException = $result->exception;
|
|
||||||
$resultMessage = $result->message;
|
|
||||||
if ($resultException !== null) {
|
|
||||||
$tmessage = ValueException::get_message($resultException);
|
|
||||||
if ($tmessage) {
|
|
||||||
if ($resultMessage !== null) $resultMessage .= ": ";
|
|
||||||
$resultMessage .= $tmessage;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$message = $this->message;
|
$this->_addMessage($wrapper, $prefix);
|
||||||
if ($message) $message .= "\n";
|
}
|
||||||
$message .= $resultMessage;
|
|
||||||
$this->message = $message;
|
function addInvalidMessage(Wrapper $wrapper, $prefix=null): void {
|
||||||
|
if ($this->highestResult < ref_analyze::INVALID) {
|
||||||
|
$this->present = true;
|
||||||
|
$this->available = true;
|
||||||
|
$this->null = false;
|
||||||
|
$this->valid = false;
|
||||||
|
$this->messageKey = "invalid";
|
||||||
|
}
|
||||||
|
$this->_addMessage($wrapper, $prefix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ class Result {
|
|||||||
public ?string $messageKey;
|
public ?string $messageKey;
|
||||||
public ?string $message;
|
public ?string $message;
|
||||||
public ?Throwable $exception;
|
public ?Throwable $exception;
|
||||||
public ?string $origValue;
|
public $origValue;
|
||||||
public $normalizedValue;
|
public $normalizedValue;
|
||||||
|
|
||||||
/** réinitialiser tous les objets résultats accessibles via cet objet */
|
/** réinitialiser tous les objets résultats accessibles via cet objet */
|
||||||
@ -119,11 +119,9 @@ class Result {
|
|||||||
$this->valid = false;
|
$this->valid = false;
|
||||||
$this->origValue = $value;
|
$this->origValue = $value;
|
||||||
$this->messageKey = $messageKey = "invalid";
|
$this->messageKey = $messageKey = "invalid";
|
||||||
$message = $this->getMessage($messageKey, $schema);
|
$message = null;
|
||||||
if ($exception !== null) {
|
if ($exception !== null) $message = ValueException::get_message($exception);
|
||||||
$tmessage = ValueException::get_message($exception);
|
if (!$message) $message = $this->getMessage($messageKey, $schema);
|
||||||
if ($tmessage) $message = $tmessage;
|
|
||||||
}
|
|
||||||
$this->message = $message;
|
$this->message = $message;
|
||||||
$this->exception = $exception;
|
$this->exception = $exception;
|
||||||
return ref_analyze::INVALID;
|
return ref_analyze::INVALID;
|
||||||
|
@ -12,8 +12,8 @@ use nulib\schema\_scalar\ScalarSchema;
|
|||||||
use nulib\schema\types\IType;
|
use nulib\schema\types\IType;
|
||||||
use nulib\schema\types\tarray;
|
use nulib\schema\types\tarray;
|
||||||
use nulib\schema\types\tbool;
|
use nulib\schema\types\tbool;
|
||||||
use nulib\schema\types\tfunc;
|
|
||||||
use nulib\schema\types\tcontent;
|
use nulib\schema\types\tcontent;
|
||||||
|
use nulib\schema\types\tfunc;
|
||||||
use nulib\schema\types\tpkey;
|
use nulib\schema\types\tpkey;
|
||||||
use nulib\schema\types\trawstring;
|
use nulib\schema\types\trawstring;
|
||||||
|
|
||||||
|
@ -3,9 +3,9 @@ namespace nulib\schema\_assoc;
|
|||||||
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\ref\schema\ref_schema;
|
use nulib\ref\schema\ref_schema;
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
use nulib\schema\Wrapper;
|
use nulib\schema\Wrapper;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AssocSchema
|
* Class AssocSchema
|
||||||
|
@ -105,18 +105,21 @@ class AssocWrapper extends Wrapper {
|
|||||||
|
|
||||||
$result = $context->consolidatedResult;
|
$result = $context->consolidatedResult;
|
||||||
$result->setValid();
|
$result->setValid();
|
||||||
foreach ($context->keyWrappers as $keyWrapper) {
|
foreach ($context->keyWrappers as $key => $keyWrapper) {
|
||||||
$keyWrapper->analyze($params);
|
$keyWrapper->analyze($params);
|
||||||
if ($keyWrapper->isValid()) continue;
|
if ($keyWrapper->isValid()) continue;
|
||||||
$what = ref_analyze::INVALID;
|
$what = ref_analyze::INVALID;
|
||||||
|
#XXX utiliser si possible la description ou une autre valeur "user-friendly"
|
||||||
|
# possibilité de sélectionner la valeur à utiliser dans $params?
|
||||||
|
$prefix = $key;
|
||||||
if (!$keyWrapper->isPresent()) {
|
if (!$keyWrapper->isPresent()) {
|
||||||
$result->addMissingMessage($keyWrapper);
|
$result->addMissingMessage($keyWrapper, $prefix);
|
||||||
} elseif (!$keyWrapper->isAvailable()) {
|
} elseif (!$keyWrapper->isAvailable()) {
|
||||||
$result->addUnavailableMessage($keyWrapper);
|
$result->addUnavailableMessage($keyWrapper, $prefix);
|
||||||
} elseif ($keyWrapper->isNull()) {
|
} elseif ($keyWrapper->isNull()) {
|
||||||
$result->addNullMessage($keyWrapper);
|
$result->addNullMessage($keyWrapper, $prefix);
|
||||||
} else {
|
} else {
|
||||||
$result->addInvalidMessage($keyWrapper);
|
$result->addInvalidMessage($keyWrapper, $prefix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
namespace nulib\schema\_list;
|
namespace nulib\schema\_list;
|
||||||
|
|
||||||
use nulib\ref\schema\ref_schema;
|
use nulib\ref\schema\ref_schema;
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
use nulib\schema\Wrapper;
|
use nulib\schema\Wrapper;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
class ListSchema extends Schema {
|
class ListSchema extends Schema {
|
||||||
/** @var array meta-schema d'un schéma de nature liste */
|
/** @var array meta-schema d'un schéma de nature liste */
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\_scalar;
|
namespace nulib\schema\_scalar;
|
||||||
|
|
||||||
use nulib\cl;
|
|
||||||
use nulib\ref\schema\ref_schema;
|
use nulib\ref\schema\ref_schema;
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
use nulib\schema\Wrapper;
|
use nulib\schema\Wrapper;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ScalarSchema
|
* Class ScalarSchema
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\input;
|
namespace nulib\schema\input;
|
||||||
|
|
||||||
use nulib\ref\schema\ref_input;
|
|
||||||
use nulib\StateException;
|
|
||||||
use nulib\php\access\IAccess;
|
use nulib\php\access\IAccess;
|
||||||
use nulib\php\access\KeyAccess;
|
use nulib\php\access\KeyAccess;
|
||||||
use nulib\php\access\PropertyAccess;
|
use nulib\php\access\PropertyAccess;
|
||||||
|
use nulib\ref\schema\ref_input;
|
||||||
|
use nulib\StateException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Input: accès à une valeur
|
* Class Input: accès à une valeur
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema;
|
namespace nulib\schema;
|
||||||
|
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\types\IType;
|
use nulib\schema\types\IType;
|
||||||
use nulib\schema\types\Registry;
|
use nulib\schema\types\Registry;
|
||||||
use nulib\schema\types\tarray;
|
use nulib\schema\types\tarray;
|
||||||
use nulib\schema\types\tbool;
|
use nulib\schema\types\tbool;
|
||||||
use nulib\schema\types\tfunc;
|
|
||||||
use nulib\schema\types\tcontent;
|
use nulib\schema\types\tcontent;
|
||||||
use nulib\schema\types\tfloat;
|
use nulib\schema\types\tfloat;
|
||||||
|
use nulib\schema\types\tfunc;
|
||||||
use nulib\schema\types\tint;
|
use nulib\schema\types\tint;
|
||||||
use nulib\schema\types\tkey;
|
use nulib\schema\types\tkey;
|
||||||
use nulib\schema\types\tmixed;
|
use nulib\schema\types\tmixed;
|
||||||
@ -17,6 +16,7 @@ use nulib\schema\types\traw;
|
|||||||
use nulib\schema\types\trawstring;
|
use nulib\schema\types\trawstring;
|
||||||
use nulib\schema\types\tstring;
|
use nulib\schema\types\tstring;
|
||||||
use nulib\schema\types\ttext;
|
use nulib\schema\types\ttext;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class types: classe outil pour gérer le registre de types
|
* Class types: classe outil pour gérer le registre de types
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\input\Input;
|
use nulib\schema\input\Input;
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface IType: un type de données
|
* Interface IType: un type de données
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\StateException;
|
|
||||||
use nur\prop;
|
|
||||||
use nulib\schema\input\Input;
|
use nulib\schema\input\Input;
|
||||||
|
use nur\prop;
|
||||||
use nur\str;
|
use nur\str;
|
||||||
|
|
||||||
abstract class _tsimple implements IType {
|
abstract class _tsimple implements IType {
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\_scalar\ScalarSchema;
|
use nulib\schema\_scalar\ScalarSchema;
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\ValueException;
|
|
||||||
use nur\prop;
|
|
||||||
use nulib\schema\_scalar\ScalarSchema;
|
use nulib\schema\_scalar\ScalarSchema;
|
||||||
use nulib\schema\input\Input;
|
use nulib\schema\input\Input;
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use nulib\ValueException;
|
||||||
|
use nur\prop;
|
||||||
|
|
||||||
class tbool extends _tformatable {
|
class tbool extends _tformatable {
|
||||||
const NAME = "bool";
|
const NAME = "bool";
|
||||||
@ -60,7 +60,7 @@ class tbool extends _tformatable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getMissingValue(?bool &$valid=null) {
|
function getMissingValue(?bool &$valid=null) {
|
||||||
$valid = !$this->nullable;
|
$valid = false;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\_scalar\ScalarSchema;
|
use nulib\schema\_scalar\ScalarSchema;
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
class tfloat extends _tformatable {
|
class tfloat extends _tformatable {
|
||||||
const NAME = "float";
|
const NAME = "float";
|
||||||
|
@ -3,10 +3,10 @@ namespace nulib\schema\types;
|
|||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use nulib\php\func;
|
use nulib\php\func;
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\_scalar\ScalarSchema;
|
use nulib\schema\_scalar\ScalarSchema;
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
class tfunc extends _tsimple {
|
class tfunc extends _tsimple {
|
||||||
const NAME = "func";
|
const NAME = "func";
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\_scalar\ScalarSchema;
|
use nulib\schema\_scalar\ScalarSchema;
|
||||||
use nulib\schema\input\Input;
|
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
class tgeneric extends _tsimple {
|
class tgeneric extends _tsimple {
|
||||||
function __construct(string $class, bool $nullable, ?array $params=null) {
|
function __construct(string $class, bool $nullable, ?array $params=null) {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\schema\_scalar\ScalarSchema;
|
use nulib\schema\_scalar\ScalarSchema;
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use nulib\ValueException;
|
||||||
|
|
||||||
class tint extends _tformatable {
|
class tint extends _tformatable {
|
||||||
const NAME = "int";
|
const NAME = "int";
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\schema\types;
|
namespace nulib\schema\types;
|
||||||
|
|
||||||
use nulib\str;
|
|
||||||
use nulib\schema\_scalar\ScalarSchema;
|
use nulib\schema\_scalar\ScalarSchema;
|
||||||
use nulib\schema\Result;
|
use nulib\schema\Result;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use nulib\str;
|
||||||
|
|
||||||
class trawstring extends _tstring {
|
class trawstring extends _tstring {
|
||||||
const NAME = "rawstring";
|
const NAME = "rawstring";
|
||||||
|
@ -6,6 +6,7 @@ use nulib\tests\TestCase;
|
|||||||
use nulib\ValueException;
|
use nulib\ValueException;
|
||||||
use nulib\schema\_scalar\ScalarSchemaTest;
|
use nulib\schema\_scalar\ScalarSchemaTest;
|
||||||
use nulib\schema\Schema;
|
use nulib\schema\Schema;
|
||||||
|
use PHPStan\Type\Enum\EnumCaseObjectType;
|
||||||
|
|
||||||
class AssocSchemaTest extends TestCase {
|
class AssocSchemaTest extends TestCase {
|
||||||
const NULL_SCHEMA = [
|
const NULL_SCHEMA = [
|
||||||
@ -32,6 +33,8 @@ class AssocSchemaTest extends TestCase {
|
|||||||
"messages" => null,
|
"messages" => null,
|
||||||
"formatter_func" => null,
|
"formatter_func" => null,
|
||||||
"format" => null,
|
"format" => null,
|
||||||
|
"size" => null,
|
||||||
|
"precision" => null,
|
||||||
"name" => null,
|
"name" => null,
|
||||||
"pkey" => null,
|
"pkey" => null,
|
||||||
"header" => null,
|
"header" => null,
|
||||||
@ -169,8 +172,8 @@ class AssocSchemaTest extends TestCase {
|
|||||||
"b" => false,
|
"b" => false,
|
||||||
], $array);
|
], $array);
|
||||||
|
|
||||||
// false équivaut à absent
|
// false équivaut à absent, sauf pour "b" qui est de type bool
|
||||||
$array = ["s" => false, "i" => false, "b" => null];
|
$array = ["s" => false, "i" => false, "b" => false];
|
||||||
$schema->getWrapper($array, null, ["ensure_keys" => true]);
|
$schema->getWrapper($array, null, ["ensure_keys" => true]);
|
||||||
self::assertSame([
|
self::assertSame([
|
||||||
"s" => "",
|
"s" => "",
|
||||||
@ -178,9 +181,11 @@ class AssocSchemaTest extends TestCase {
|
|||||||
"b" => false,
|
"b" => false,
|
||||||
], $array);
|
], $array);
|
||||||
|
|
||||||
$array = ["s" => false, "i" => false, "b" => null];
|
$array = ["s" => false, "i" => false, "b" => false];
|
||||||
$schema->getWrapper($array, null, ["ensure_keys" => false]);
|
$schema->getWrapper($array, null, ["ensure_keys" => false]);
|
||||||
self::assertSame([], $array);
|
self::assertSame([
|
||||||
|
"b" => false,
|
||||||
|
], $array);
|
||||||
}
|
}
|
||||||
|
|
||||||
const STRING_SCHEMA = [
|
const STRING_SCHEMA = [
|
||||||
@ -363,4 +368,29 @@ class AssocSchemaTest extends TestCase {
|
|||||||
$schema->getWrapper($array);
|
$schema->getWrapper($array);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testMessage() {
|
||||||
|
$schema = new AssocSchema([
|
||||||
|
"rs" => ["string", "required" => true],
|
||||||
|
"i" => ["int"],
|
||||||
|
]);
|
||||||
|
|
||||||
|
$value = [];
|
||||||
|
$result = $schema->getWrapper($value, null, ["throw" => false])->getResult(null);
|
||||||
|
$expectedMessage = <<<EOT
|
||||||
|
rs: vous devez spécifier cette valeur
|
||||||
|
EOT;
|
||||||
|
self::assertSame($expectedMessage, $result->message);
|
||||||
|
|
||||||
|
$value = [
|
||||||
|
"rs" => null,
|
||||||
|
"i" => "abc",
|
||||||
|
];
|
||||||
|
$result = $schema->getWrapper($value, null, ["throw" => false])->getResult(null);
|
||||||
|
$expectedMessage = <<<EOT
|
||||||
|
rs: cette valeur ne doit pas être nulle
|
||||||
|
i: une valeur numérique entière est attendue
|
||||||
|
EOT;
|
||||||
|
self::assertSame($expectedMessage, $result->message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ class ScalarSchemaTest extends TestCase {
|
|||||||
"messages" => null,
|
"messages" => null,
|
||||||
"formatter_func" => null,
|
"formatter_func" => null,
|
||||||
"format" => null,
|
"format" => null,
|
||||||
|
"size" => null,
|
||||||
|
"precision" => null,
|
||||||
"" => [
|
"" => [
|
||||||
"scalar",
|
"scalar",
|
||||||
"compute_func" => null,
|
"compute_func" => null,
|
||||||
|
Loading…
Reference in New Issue
Block a user