modifs.mineures sans commentaires
This commit is contained in:
parent
f0239ed2fb
commit
3759f10fa0
|
@ -4,33 +4,33 @@ namespace nur\sery\wip\php\access;
|
||||||
use nur\sery\cl;
|
use nur\sery\cl;
|
||||||
|
|
||||||
abstract class AbstractAccess implements IAccess {
|
abstract class AbstractAccess implements IAccess {
|
||||||
function available($src): bool {
|
function available(): bool {
|
||||||
return $this->exists($src) && $this->get($src) !== false;
|
return $this->exists() && $this->get() !== false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function inc(&$dest): int {
|
function inc(): int {
|
||||||
$value = (int)$this->get($dest);
|
$value = (int)$this->get();
|
||||||
$this->set(++$value, $dest);
|
$this->set(++$value);
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function dec(&$dest, bool $allowNegative=false): int {
|
function dec(bool $allowNegative=false): int {
|
||||||
$value = (int)$this->get($dest);
|
$value = (int)$this->get();
|
||||||
if ($allowNegative || $value > 0) {
|
if ($allowNegative || $value > 0) {
|
||||||
$this->set(--$value, $dest);
|
$this->set(--$value);
|
||||||
}
|
}
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function merge($values, &$dest): void {
|
function merge(?array $values): void {
|
||||||
$array = $this->get($dest);
|
$array = $this->get();
|
||||||
$array = cl::merge($array, $values);
|
$array = cl::merge($array, $values);
|
||||||
$this->set($array, $dest);
|
$this->set($array);
|
||||||
}
|
}
|
||||||
|
|
||||||
function append($value, &$dest, $key=null): void {
|
function append($value, $key=null): void {
|
||||||
$array = $this->get($dest);
|
$array = $this->get();
|
||||||
cl::set($array, $key, $value);
|
cl::set($array, $key, $value);
|
||||||
$this->set($array, $dest);
|
$this->set($array);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?php
|
||||||
|
namespace nur\sery\wip\php\access;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class DoubleAccess: 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
|
||||||
|
* $writer
|
||||||
|
* - au départ, les méthodes de {@link IGetter} attaquent $reader et les
|
||||||
|
* méthodes de {@link ISetter} et {@link IDeleter} attaquent $writer
|
||||||
|
* - dès qu'une méthode de {@link ISetter} est utilisée, les méthodes de
|
||||||
|
* {@link IGetter} attaquent $writer
|
||||||
|
* - 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 {
|
||||||
|
}
|
|
@ -17,13 +17,13 @@ class FormAccess extends AbstractAccess {
|
||||||
|
|
||||||
protected bool $allowEmpty;
|
protected bool $allowEmpty;
|
||||||
|
|
||||||
function exists($src=null): bool {
|
function exists(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
return array_key_exists($key, $_POST) || array_key_exists($key, $_GET);
|
return array_key_exists($key, $_POST) || array_key_exists($key, $_GET);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function available($src=null): bool {
|
public function available(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
if (array_key_exists($key, $_POST)) {
|
if (array_key_exists($key, $_POST)) {
|
||||||
|
@ -35,7 +35,7 @@ class FormAccess extends AbstractAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function get($src=null, $default=null) {
|
function get($default=null) {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return $default;
|
if ($key === null) return $default;
|
||||||
if (array_key_exists($key, $_POST)) {
|
if (array_key_exists($key, $_POST)) {
|
||||||
|
@ -51,7 +51,7 @@ class FormAccess extends AbstractAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($value, &$dest=null): void {
|
function set($value): void {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return;
|
if ($key === null) return;
|
||||||
if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) {
|
if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) {
|
||||||
|
@ -61,8 +61,9 @@ class FormAccess extends AbstractAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function del(&$dest=null): void {
|
function del(): void {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
|
if ($key === null) return;
|
||||||
if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) {
|
if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) {
|
||||||
cl::del($_GET, $key);
|
cl::del($_GET, $key);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -17,13 +17,13 @@ class GetAccess extends AbstractAccess {
|
||||||
|
|
||||||
protected bool $allowEmpty;
|
protected bool $allowEmpty;
|
||||||
|
|
||||||
function exists($src=null): bool {
|
function exists(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
return array_key_exists($key, $_GET);
|
return array_key_exists($key, $_GET);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function available($src=null): bool {
|
public function available(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
if (array_key_exists($key, $_GET)) {
|
if (array_key_exists($key, $_GET)) {
|
||||||
|
@ -33,7 +33,7 @@ class GetAccess extends AbstractAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function get($src=null, $default=null) {
|
function get($default=null) {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return $default;
|
if ($key === null) return $default;
|
||||||
if (array_key_exists($key, $_GET)) {
|
if (array_key_exists($key, $_GET)) {
|
||||||
|
@ -45,13 +45,13 @@ class GetAccess extends AbstractAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($value, &$dest=null): void {
|
function set($value): void {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return;
|
if ($key === null) return;
|
||||||
cl::set($_GET, $key, $value);
|
cl::set($_GET, $key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function del(&$dest=null): void {
|
function del(): void {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return;
|
if ($key === null) return;
|
||||||
cl::del($_GET, $key);
|
cl::del($_GET, $key);
|
||||||
|
|
|
@ -6,16 +6,16 @@ namespace nur\sery\wip\php\access;
|
||||||
*/
|
*/
|
||||||
interface IAccess extends IGetter, ISetter, IDeleter {
|
interface IAccess extends IGetter, ISetter, IDeleter {
|
||||||
/** incrémenter la valeur */
|
/** incrémenter la valeur */
|
||||||
function inc(&$dest): int;
|
function inc(): int;
|
||||||
|
|
||||||
/** décrémenter la valeur */
|
/** décrémenter la valeur */
|
||||||
function dec(&$dest, bool $allowNegative=false): int;
|
function dec(bool $allowNegative=false): int;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fusionner le tableau $values dans la destination, qui est transformée en
|
* fusionner le tableau $values dans la destination, qui est transformée en
|
||||||
* tableau d'abord si nécessaire
|
* tableau d'abord si nécessaire
|
||||||
*/
|
*/
|
||||||
function merge($values, &$dest): void;
|
function merge(?array $values): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ajouter la valeur à la destination, qui est transformée en tableau d'abord
|
* ajouter la valeur à la destination, qui est transformée en tableau d'abord
|
||||||
|
@ -24,5 +24,5 @@ interface IAccess extends IGetter, ISetter, IDeleter {
|
||||||
* la valeur est ajoutée avec la clé $key le cas échéant, ou à la fin du
|
* la valeur est ajoutée avec la clé $key le cas échéant, ou à la fin du
|
||||||
* tableau si $key===null
|
* tableau si $key===null
|
||||||
*/
|
*/
|
||||||
function append($value, &$dest, $key=null): void;
|
function append($value, $key=null): void;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
namespace nur\sery\wip\php\access;
|
namespace nur\sery\wip\php\access;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class IDeleter: une abstraction de suppression d'une valeur
|
* Class IDeleter: une abstraction d'un objet qui permet de supprimer une valeur
|
||||||
*/
|
*/
|
||||||
interface IDeleter {
|
interface IDeleter {
|
||||||
/** supprimer la valeur dans la destination */
|
/** supprimer la valeur dans la destination */
|
||||||
function del(&$dest): void;
|
function del(): void;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,18 +2,18 @@
|
||||||
namespace nur\sery\wip\php\access;
|
namespace nur\sery\wip\php\access;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class IGetter: une abstraction d'obtention d'une valeur
|
* Class IGetter: une abstraction d'un objet qui permet d'obtenir une valeur
|
||||||
*/
|
*/
|
||||||
interface IGetter {
|
interface IGetter {
|
||||||
/**
|
/**
|
||||||
* @return bool true si la valeur existe, false sinon. ne pas tenir compte de
|
* @return bool true si la valeur existe, false sinon. ne pas tenir compte de
|
||||||
* si la valeur est utilisable ou non
|
* si la valeur est utilisable ou non
|
||||||
*/
|
*/
|
||||||
function exists($src): bool;
|
function exists(): bool;
|
||||||
|
|
||||||
/** @return bool true si la valeur existe et est utilisable, false sinon */
|
/** @return bool true si la valeur existe et est utilisable, false sinon */
|
||||||
function available($src): bool;
|
function available(): bool;
|
||||||
|
|
||||||
/** @return mixed la valeur depuis la source */
|
/** @return mixed la valeur depuis la source */
|
||||||
function get($src, $default=null);
|
function get($default=null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
namespace nur\sery\wip\php\access;
|
namespace nur\sery\wip\php\access;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ISetter: une abstraction de modification d'une valeur
|
* Class ISetter: une abstraction d'un objet qui permet de modifier une valeur
|
||||||
*/
|
*/
|
||||||
interface ISetter {
|
interface ISetter {
|
||||||
/** modifier la destination avec la valeur spécifiée */
|
/** modifier la destination avec la valeur spécifiée */
|
||||||
function set($value, &$dest): void;
|
function set($value): void;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +1,40 @@
|
||||||
<?php
|
<?php
|
||||||
namespace nur\sery\wip\php\access;
|
namespace nur\sery\wip\php\access;
|
||||||
|
|
||||||
|
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'un tableau
|
||||||
*/
|
*/
|
||||||
class KeyAccess extends AbstractAccess {
|
class KeyAccess extends AbstractAccess {
|
||||||
function __construct($key) {
|
function __construct(&$dest, $key) {
|
||||||
|
$this->dest =& $dest;
|
||||||
$this->key = $key;
|
$this->key = $key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var array|ArrayAccess */
|
||||||
|
protected $dest;
|
||||||
|
|
||||||
/** @var int|string */
|
/** @var int|string */
|
||||||
protected $key;
|
protected $key;
|
||||||
|
|
||||||
function exists($src): bool {
|
function exists(): bool {
|
||||||
return $this->key !== null && cl::has($src, $this->key);
|
return $this->key !== null && cl::has($this->dest, $this->key);
|
||||||
}
|
}
|
||||||
|
|
||||||
function get($src, $default=null) {
|
function get($default=null) {
|
||||||
if ($this->key === null) return $default;
|
if ($this->key === null) return $default;
|
||||||
return cl::get($src, $this->key, $default);
|
return cl::get($this->dest, $this->key, $default);
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($value, &$dest): void {
|
function set($value): void {
|
||||||
if ($this->key === null) return;
|
if ($this->key === null) return;
|
||||||
cl::set($dest, $this->key, $value);
|
cl::set($this->dest, $this->key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function del(&$dest): void {
|
function del(): void {
|
||||||
if ($this->key === null) return;
|
if ($this->key === null) return;
|
||||||
cl::del($dest, $this->key);
|
cl::del($this->dest, $this->key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,13 +17,13 @@ class PostAccess extends AbstractAccess {
|
||||||
|
|
||||||
protected bool $allowEmpty;
|
protected bool $allowEmpty;
|
||||||
|
|
||||||
function exists($src=null): bool {
|
function exists(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
return array_key_exists($key, $_POST);
|
return array_key_exists($key, $_POST);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function available($src=null): bool {
|
public function available(): bool {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return false;
|
if ($key === null) return false;
|
||||||
if (array_key_exists($key, $_POST)) {
|
if (array_key_exists($key, $_POST)) {
|
||||||
|
@ -33,7 +33,7 @@ class PostAccess extends AbstractAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function get($src=null, $default=null) {
|
function get($default=null) {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return $default;
|
if ($key === null) return $default;
|
||||||
if (array_key_exists($key, $_POST)) {
|
if (array_key_exists($key, $_POST)) {
|
||||||
|
@ -45,13 +45,13 @@ class PostAccess extends AbstractAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($value, &$dest=null): void {
|
function set($value): void {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return;
|
if ($key === null) return;
|
||||||
cl::set($_POST, $key, $value);
|
cl::set($_POST, $key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function del(&$dest=null): void {
|
function del(): void {
|
||||||
$key = $this->key;
|
$key = $this->key;
|
||||||
if ($key === null) return;
|
if ($key === null) return;
|
||||||
cl::del($_POST, $key);
|
cl::del($_POST, $key);
|
||||||
|
|
|
@ -5,24 +5,31 @@ namespace nur\sery\wip\php\access;
|
||||||
* Class ValueAccess: accès à une valeur scalaire
|
* Class ValueAccess: accès à une valeur scalaire
|
||||||
*/
|
*/
|
||||||
class ValueAccess extends AbstractAccess {
|
class ValueAccess extends AbstractAccess {
|
||||||
function exists($src): bool {
|
function __construct(&$dest) {
|
||||||
return $src !== null;
|
$this->dest =& $dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
function available($src): bool {
|
/** @var mixed */
|
||||||
return $this->exists($src);
|
protected $dest;
|
||||||
|
|
||||||
|
function exists(): bool {
|
||||||
|
return $this->dest !== null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get($src, $default=null) {
|
function available(): bool {
|
||||||
if ($src === null) return $default;
|
return $this->exists();
|
||||||
else return $src;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($value, &$dest): void {
|
function get($default=null) {
|
||||||
$dest = $value;
|
if ($this->dest === null) return $default;
|
||||||
|
else return $this->dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
function del(&$dest): void {
|
function set($value): void {
|
||||||
$dest = null;
|
$this->dest = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function del(): void {
|
||||||
|
$this->dest = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue