début de travail sur les types simples et time
This commit is contained in:
parent
aee4a8d7c7
commit
c1adebdbd3
21
src/php/time/Time.php
Normal file
21
src/php/time/Time.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
namespace nulib\php\time;
|
||||
|
||||
/**
|
||||
* Class Time: une heure allant de 0h à 24h inclus.
|
||||
*
|
||||
* la seule utilisation autorisée de "24h" est comme borne supérieure pour une
|
||||
* plage horaire.
|
||||
*/
|
||||
class Time {
|
||||
static function with($time): self {
|
||||
if ($time instanceof static) return $time;
|
||||
else return new static($time);
|
||||
}
|
||||
|
||||
static function withn($time): ?self {
|
||||
if ($time === null) return null;
|
||||
elseif ($time instanceof static) return $time;
|
||||
else return new static($time);
|
||||
}
|
||||
}
|
||||
24
src/php/types/vdate.php
Normal file
24
src/php/types/vdate.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace nulib\php\types;
|
||||
|
||||
use nulib\php\time\Date;
|
||||
|
||||
class vdate {
|
||||
static function ensure(&$date): void {
|
||||
$date = Date::with($date);
|
||||
}
|
||||
|
||||
static function ensuren(&$date): void {
|
||||
$date = Date::withn($date);
|
||||
}
|
||||
|
||||
static function with($value): Date {
|
||||
self::ensure($value);
|
||||
return $value;
|
||||
}
|
||||
|
||||
static function withn($value): ?Date {
|
||||
self::ensuren($value);
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
24
src/php/types/vdatetime.php
Normal file
24
src/php/types/vdatetime.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace nulib\php\types;
|
||||
|
||||
use nulib\php\time\DateTime;
|
||||
|
||||
class vdatetime {
|
||||
static function ensure(&$datetime): void {
|
||||
$datetime = DateTime::with($datetime);
|
||||
}
|
||||
|
||||
static function ensuren(&$datetime): void {
|
||||
$datetime = DateTime::withn($datetime);
|
||||
}
|
||||
|
||||
static function with($value): DateTime {
|
||||
self::ensure($value);
|
||||
return $value;
|
||||
}
|
||||
|
||||
static function withn($value): ?DateTime {
|
||||
self::ensuren($value);
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
18
src/php/types/vmixed.php
Normal file
18
src/php/types/vmixed.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
namespace nulib\php\types;
|
||||
|
||||
class vmixed {
|
||||
static function ensure(&$mixed): void {
|
||||
}
|
||||
|
||||
static function ensuren(&$mixed): void {
|
||||
}
|
||||
|
||||
static function with($value) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
static function withn($value) {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
18
src/php/types/vraw.php
Normal file
18
src/php/types/vraw.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
namespace nulib\php\types;
|
||||
|
||||
class vraw {
|
||||
static function ensure(&$raw): void {
|
||||
}
|
||||
|
||||
static function ensuren(&$raw): void {
|
||||
}
|
||||
|
||||
static function with($value) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
static function withn($value) {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
43
src/php/types/vschema.php
Normal file
43
src/php/types/vschema.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace nulib\php\types;
|
||||
|
||||
/**
|
||||
* Class vschema: gestionsimplifiée de schémas associatifs
|
||||
*
|
||||
* seuls les types simples sont reconnus
|
||||
*/
|
||||
class vschema {
|
||||
/** @var array types valides */
|
||||
const TYPES = [
|
||||
"rawstring" => vrawstring::class,
|
||||
"string" => vstring::class,
|
||||
"text" => vtext::class,
|
||||
"bool" => vbool::class,
|
||||
"int" => vint::class,
|
||||
"float" => vfloat::class,
|
||||
"array" => varray::class,
|
||||
"func" => vfunc::class,
|
||||
"raw" => vraw::class,
|
||||
"mixed" => vmixed::class,
|
||||
"key" => vkey::class,
|
||||
"pkey" => vpkey::class,
|
||||
"content" => vcontent::class,
|
||||
"datetime" => vdatetime::class,
|
||||
"date" => vdate::class,
|
||||
"time" => vtime::class,
|
||||
];
|
||||
|
||||
/** indiquer si $value est conforme au schéma */
|
||||
static function check($value, array $schema): bool {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* s'assurer que $value est conforme au schéma
|
||||
* - les clés ne sont pas créées si elles n'existent pas
|
||||
*
|
||||
*/
|
||||
static function ensure(&$value, array $schema): void {
|
||||
|
||||
}
|
||||
}
|
||||
24
src/php/types/vtime.php
Normal file
24
src/php/types/vtime.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace nulib\php\types;
|
||||
|
||||
use nulib\php\time\Time;
|
||||
|
||||
class vtime {
|
||||
static function ensure(&$time): void {
|
||||
$time = Time::with($time);
|
||||
}
|
||||
|
||||
static function ensuren(&$time): void {
|
||||
$time = Time::withn($time);
|
||||
}
|
||||
|
||||
static function with($value): Time {
|
||||
self::ensure($value);
|
||||
return $value;
|
||||
}
|
||||
|
||||
static function withn($value): ?Time {
|
||||
self::ensuren($value);
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user