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;
|
||||
|
||||
/**
|
||||
* Class AbstractAccess: implémentation par défaut pour des instances standard
|
||||
* de {@link IAccess}
|
||||
*/
|
||||
abstract class AbstractAccess implements IAccess {
|
||||
function inc(): int {
|
||||
$value = (int)$this->get();
|
||||
|
|
|
@ -4,12 +4,12 @@ namespace nur\sery\wip\php\access;
|
|||
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 {
|
||||
function __construct($key, bool $allowEmpty=false) {
|
||||
function __construct($key, ?array $params=null) {
|
||||
$this->key = $key;
|
||||
$this->allowEmpty = $allowEmpty;
|
||||
$this->allowEmpty = $params["allow_empty"] ?? false;
|
||||
}
|
||||
|
||||
/** @var int|string */
|
||||
|
|
|
@ -6,17 +6,7 @@ use nur\sery\cl;
|
|||
/**
|
||||
* Class GetAccess: accès à une valeur de $_GET
|
||||
*/
|
||||
class GetAccess extends AbstractAccess {
|
||||
function __construct($key, bool $allowEmpty=false) {
|
||||
$this->key = $key;
|
||||
$this->allowEmpty = $allowEmpty;
|
||||
}
|
||||
|
||||
/** @var int|string */
|
||||
protected $key;
|
||||
|
||||
protected bool $allowEmpty;
|
||||
|
||||
class GetAccess extends FormAccess {
|
||||
function exists(): bool {
|
||||
$key = $this->key;
|
||||
if ($key === null) return false;
|
||||
|
|
|
@ -5,12 +5,14 @@ use ArrayAccess;
|
|||
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 {
|
||||
function __construct(&$dest, $key) {
|
||||
function __construct(&$dest, $key, ?array $params=null) {
|
||||
$this->dest =& $dest;
|
||||
$this->key = $key;
|
||||
$this->allowFalse = $params["allow_false"] ?? false;
|
||||
$this->allowEmpty = $params["allow_empty"] ?? true;
|
||||
}
|
||||
|
||||
/** @var array|ArrayAccess */
|
||||
|
@ -19,17 +21,30 @@ class KeyAccess extends AbstractAccess {
|
|||
/** @var int|string */
|
||||
protected $key;
|
||||
|
||||
protected bool $allowFalse;
|
||||
|
||||
protected bool $allowEmpty;
|
||||
|
||||
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 {
|
||||
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) {
|
||||
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 {
|
||||
|
|
|
@ -6,17 +6,7 @@ use nur\sery\cl;
|
|||
/**
|
||||
* Class PostAccess: accès à une valeur de $_POST
|
||||
*/
|
||||
class PostAccess extends AbstractAccess {
|
||||
function __construct($key, bool $allowEmpty=false) {
|
||||
$this->key = $key;
|
||||
$this->allowEmpty = $allowEmpty;
|
||||
}
|
||||
|
||||
/** @var int|string */
|
||||
protected $key;
|
||||
|
||||
protected bool $allowEmpty;
|
||||
|
||||
class PostAccess extends FormAccess {
|
||||
function exists(): bool {
|
||||
$key = $this->key;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 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}
|
||||
*
|
||||
* 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
|
||||
* {@link IGetter} attaquent de nouveau $reader comme initialement
|
||||
*/
|
||||
class DoubleAccess extends AbstractAccess {
|
||||
class ShadowAccess extends AbstractAccess {
|
||||
function __construct(IAccess $reader, IAccess $writer) {
|
||||
$this->reader = $reader;
|
||||
$this->writer = $writer;
|
Loading…
Reference in New Issue