modifs.mineures sans commentaires
This commit is contained in:
parent
94e1cb6e0c
commit
b2a39dea31
|
@ -3,6 +3,10 @@ namespace nur\sery\wip\php\access;
|
||||||
|
|
||||||
use nur\sery\cl;
|
use nur\sery\cl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class AbstractAccess: implémentation par défaut pour des instances standard
|
||||||
|
* de {@link IAccess}
|
||||||
|
*/
|
||||||
abstract class AbstractAccess implements IAccess {
|
abstract class AbstractAccess implements IAccess {
|
||||||
function inc(): int {
|
function inc(): int {
|
||||||
$value = (int)$this->get();
|
$value = (int)$this->get();
|
||||||
|
|
|
@ -4,12 +4,12 @@ namespace nur\sery\wip\php\access;
|
||||||
use nur\sery\cl;
|
use nur\sery\cl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class GetAccess: accès à une valeur de $_POST puis $_GET, dans cet ordre
|
* Class FormAccess: accès à une valeur de $_POST puis $_GET, dans cet ordre
|
||||||
*/
|
*/
|
||||||
class FormAccess extends AbstractAccess {
|
class FormAccess extends AbstractAccess {
|
||||||
function __construct($key, bool $allowEmpty=false) {
|
function __construct($key, ?array $params=null) {
|
||||||
$this->key = $key;
|
$this->key = $key;
|
||||||
$this->allowEmpty = $allowEmpty;
|
$this->allowEmpty = $params["allow_empty"] ?? false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var int|string */
|
/** @var int|string */
|
||||||
|
|
|
@ -6,17 +6,7 @@ use nur\sery\cl;
|
||||||
/**
|
/**
|
||||||
* Class GetAccess: accès à une valeur de $_GET
|
* Class GetAccess: accès à une valeur de $_GET
|
||||||
*/
|
*/
|
||||||
class GetAccess extends AbstractAccess {
|
class GetAccess extends FormAccess {
|
||||||
function __construct($key, bool $allowEmpty=false) {
|
|
||||||
$this->key = $key;
|
|
||||||
$this->allowEmpty = $allowEmpty;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var int|string */
|
|
||||||
protected $key;
|
|
||||||
|
|
||||||
protected bool $allowEmpty;
|
|
||||||
|
|
||||||
function exists(): bool {
|
function exists(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
|
|
|
@ -5,12 +5,14 @@ use ArrayAccess;
|
||||||
use nur\sery\cl;
|
use nur\sery\cl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class KeyAccess: accès à une valeur d'un tableau
|
* Class KeyAccess: accès à une valeur d'une clé dans un tableau
|
||||||
*/
|
*/
|
||||||
class KeyAccess extends AbstractAccess {
|
class KeyAccess extends AbstractAccess {
|
||||||
function __construct(&$dest, $key) {
|
function __construct(&$dest, $key, ?array $params=null) {
|
||||||
$this->dest =& $dest;
|
$this->dest =& $dest;
|
||||||
$this->key = $key;
|
$this->key = $key;
|
||||||
|
$this->allowFalse = $params["allow_false"] ?? false;
|
||||||
|
$this->allowEmpty = $params["allow_empty"] ?? true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var array|ArrayAccess */
|
/** @var array|ArrayAccess */
|
||||||
|
@ -19,17 +21,30 @@ class KeyAccess extends AbstractAccess {
|
||||||
/** @var int|string */
|
/** @var int|string */
|
||||||
protected $key;
|
protected $key;
|
||||||
|
|
||||||
|
protected bool $allowFalse;
|
||||||
|
|
||||||
|
protected bool $allowEmpty;
|
||||||
|
|
||||||
function exists(): bool {
|
function exists(): bool {
|
||||||
return $this->key !== null && cl::has($this->dest, $this->key);
|
$key = $this->key;
|
||||||
|
if ($key === null) return false;
|
||||||
|
return cl::has($this->dest, $key);
|
||||||
}
|
}
|
||||||
|
|
||||||
function available(): bool {
|
function available(): bool {
|
||||||
return $this->exists() && $this->get() !== false;
|
if (!$this->exists()) return false;
|
||||||
|
$value = $this->get();
|
||||||
|
if ($value === false) return $this->allowFalse;
|
||||||
|
if ($value === "") return $this->allowEmpty;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get($default=null) {
|
function get($default=null) {
|
||||||
if ($this->key === null) return $default;
|
if ($this->key === null) return $default;
|
||||||
return cl::get($this->dest, $this->key, $default);
|
$value = cl::get($this->dest, $this->key, $default);
|
||||||
|
if ($value === false && !$this->allowFalse) return $default;
|
||||||
|
if ($value === "" && !$this->allowEmpty) return $default;
|
||||||
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($value): void {
|
function set($value): void {
|
||||||
|
|
|
@ -6,17 +6,7 @@ use nur\sery\cl;
|
||||||
/**
|
/**
|
||||||
* Class PostAccess: accès à une valeur de $_POST
|
* Class PostAccess: accès à une valeur de $_POST
|
||||||
*/
|
*/
|
||||||
class PostAccess extends AbstractAccess {
|
class PostAccess extends FormAccess {
|
||||||
function __construct($key, bool $allowEmpty=false) {
|
|
||||||
$this->key = $key;
|
|
||||||
$this->allowEmpty = $allowEmpty;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var int|string */
|
|
||||||
protected $key;
|
|
||||||
|
|
||||||
protected bool $allowEmpty;
|
|
||||||
|
|
||||||
function exists(): bool {
|
function exists(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# nulib\php\access
|
||||||
|
|
||||||
|
Les classes de ce package sont des outils unitaires pour accéder en lecture
|
||||||
|
et/ou écriture à *une* valeur. l'idée est de disposer d'une objet générique
|
||||||
|
pour accéder à une valeur, qu'il est possible d'utiliser ou de stocker pour une
|
||||||
|
utilisateur future.
|
||||||
|
|
||||||
|
Ces classes ne sont pas conçues pour être utilisées au jour le jour; elles sont
|
||||||
|
plutôt comme des briques de base utilisées pour des traitements de plus haut
|
||||||
|
niveau.
|
||||||
|
|
||||||
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
|
@ -2,7 +2,7 @@
|
||||||
namespace nur\sery\wip\php\access;
|
namespace nur\sery\wip\php\access;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class DoubleAccess: accès en lecture depuis une instance de {@link IAccess}
|
* Class ShadowAccess: accès en lecture depuis une instance de {@link IAccess}
|
||||||
* puis écriture dans une autre instance de {@link IAccess}
|
* puis écriture dans une autre instance de {@link IAccess}
|
||||||
*
|
*
|
||||||
* l'objet est initialisé avec deux instances de {@link IAccess}: $reader et
|
* l'objet est initialisé avec deux instances de {@link IAccess}: $reader et
|
||||||
|
@ -14,7 +14,7 @@ namespace nur\sery\wip\php\access;
|
||||||
* - si une méthode de {@link IDeleter} est utilisée, les méthodes de
|
* - si une méthode de {@link IDeleter} est utilisée, les méthodes de
|
||||||
* {@link IGetter} attaquent de nouveau $reader comme initialement
|
* {@link IGetter} attaquent de nouveau $reader comme initialement
|
||||||
*/
|
*/
|
||||||
class DoubleAccess extends AbstractAccess {
|
class ShadowAccess extends AbstractAccess {
|
||||||
function __construct(IAccess $reader, IAccess $writer) {
|
function __construct(IAccess $reader, IAccess $writer) {
|
||||||
$this->reader = $reader;
|
$this->reader = $reader;
|
||||||
$this->writer = $writer;
|
$this->writer = $writer;
|
Loading…
Reference in New Issue