From f0239ed2fbfd4feb8bcc9f31d4d99ebceaf3e1ee Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Sat, 17 Aug 2024 17:03:07 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- wip/php/access/AbstractAccess.php | 36 ++++++++++++++++ wip/php/access/FormAccess.php | 72 +++++++++++++++++++++++++++++++ wip/php/access/GetAccess.php | 59 +++++++++++++++++++++++++ wip/php/access/IAccess.php | 28 ++++++++++++ wip/php/access/IDeleter.php | 10 +++++ wip/php/access/IGetter.php | 19 ++++++++ wip/php/access/ISetter.php | 10 +++++ wip/php/access/KeyAccess.php | 35 +++++++++++++++ wip/php/access/PostAccess.php | 59 +++++++++++++++++++++++++ wip/php/access/ValueAccess.php | 28 ++++++++++++ 10 files changed, 356 insertions(+) create mode 100644 wip/php/access/AbstractAccess.php create mode 100644 wip/php/access/FormAccess.php create mode 100644 wip/php/access/GetAccess.php create mode 100644 wip/php/access/IAccess.php create mode 100644 wip/php/access/IDeleter.php create mode 100644 wip/php/access/IGetter.php create mode 100644 wip/php/access/ISetter.php create mode 100644 wip/php/access/KeyAccess.php create mode 100644 wip/php/access/PostAccess.php create mode 100644 wip/php/access/ValueAccess.php diff --git a/wip/php/access/AbstractAccess.php b/wip/php/access/AbstractAccess.php new file mode 100644 index 0000000..91301d7 --- /dev/null +++ b/wip/php/access/AbstractAccess.php @@ -0,0 +1,36 @@ +exists($src) && $this->get($src) !== false; + } + + function inc(&$dest): int { + $value = (int)$this->get($dest); + $this->set(++$value, $dest); + return $value; + } + + function dec(&$dest, bool $allowNegative=false): int { + $value = (int)$this->get($dest); + if ($allowNegative || $value > 0) { + $this->set(--$value, $dest); + } + return $value; + } + + function merge($values, &$dest): void { + $array = $this->get($dest); + $array = cl::merge($array, $values); + $this->set($array, $dest); + } + + function append($value, &$dest, $key=null): void { + $array = $this->get($dest); + cl::set($array, $key, $value); + $this->set($array, $dest); + } +} diff --git a/wip/php/access/FormAccess.php b/wip/php/access/FormAccess.php new file mode 100644 index 0000000..5fb6b28 --- /dev/null +++ b/wip/php/access/FormAccess.php @@ -0,0 +1,72 @@ +key = $key; + $this->allowEmpty = $allowEmpty; + } + + /** @var int|string */ + protected $key; + + protected bool $allowEmpty; + + function exists($src=null): bool { + $key = $this->key; + if ($key === null) return false; + return array_key_exists($key, $_POST) || array_key_exists($key, $_GET); + } + + public function available($src=null): bool { + $key = $this->key; + if ($key === null) return false; + if (array_key_exists($key, $_POST)) { + return $this->allowEmpty || $_POST[$key] !== ""; + } elseif (array_key_exists($key, $_GET)) { + return $this->allowEmpty || $_GET[$key] !== ""; + } else { + return false; + } + } + + function get($src=null, $default=null) { + $key = $this->key; + if ($key === null) return $default; + if (array_key_exists($key, $_POST)) { + $value = $_POST[$key]; + if ($value === "" && !$this->allowEmpty) return $default; + return $value; + } elseif (array_key_exists($key, $_GET)) { + $value = $_GET[$key]; + if ($value === "" && !$this->allowEmpty) return $default; + return $value; + } else { + return $default; + } + } + + function set($value, &$dest=null): void { + $key = $this->key; + if ($key === null) return; + if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) { + cl::set($_GET, $key, $value); + } else { + cl::set($_POST, $key, $value); + } + } + + function del(&$dest=null): void { + $key = $this->key; + if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) { + cl::del($_GET, $key); + } else { + cl::del($_POST, $key); + } + } +} diff --git a/wip/php/access/GetAccess.php b/wip/php/access/GetAccess.php new file mode 100644 index 0000000..3ab30cc --- /dev/null +++ b/wip/php/access/GetAccess.php @@ -0,0 +1,59 @@ +key = $key; + $this->allowEmpty = $allowEmpty; + } + + /** @var int|string */ + protected $key; + + protected bool $allowEmpty; + + function exists($src=null): bool { + $key = $this->key; + if ($key === null) return false; + return array_key_exists($key, $_GET); + } + + public function available($src=null): bool { + $key = $this->key; + if ($key === null) return false; + if (array_key_exists($key, $_GET)) { + return $this->allowEmpty || $_GET[$key] !== ""; + } else { + return false; + } + } + + function get($src=null, $default=null) { + $key = $this->key; + if ($key === null) return $default; + if (array_key_exists($key, $_GET)) { + $value = $_GET[$key]; + if ($value === "" && !$this->allowEmpty) return $default; + return $value; + } else { + return $default; + } + } + + function set($value, &$dest=null): void { + $key = $this->key; + if ($key === null) return; + cl::set($_GET, $key, $value); + } + + function del(&$dest=null): void { + $key = $this->key; + if ($key === null) return; + cl::del($_GET, $key); + } +} diff --git a/wip/php/access/IAccess.php b/wip/php/access/IAccess.php new file mode 100644 index 0000000..4c3e2e6 --- /dev/null +++ b/wip/php/access/IAccess.php @@ -0,0 +1,28 @@ +key = $key; + } + + /** @var int|string */ + protected $key; + + function exists($src): bool { + return $this->key !== null && cl::has($src, $this->key); + } + + function get($src, $default=null) { + if ($this->key === null) return $default; + return cl::get($src, $this->key, $default); + } + + function set($value, &$dest): void { + if ($this->key === null) return; + cl::set($dest, $this->key, $value); + } + + function del(&$dest): void { + if ($this->key === null) return; + cl::del($dest, $this->key); + } +} diff --git a/wip/php/access/PostAccess.php b/wip/php/access/PostAccess.php new file mode 100644 index 0000000..bc3569c --- /dev/null +++ b/wip/php/access/PostAccess.php @@ -0,0 +1,59 @@ +key = $key; + $this->allowEmpty = $allowEmpty; + } + + /** @var int|string */ + protected $key; + + protected bool $allowEmpty; + + function exists($src=null): bool { + $key = $this->key; + if ($key === null) return false; + return array_key_exists($key, $_POST); + } + + public function available($src=null): bool { + $key = $this->key; + if ($key === null) return false; + if (array_key_exists($key, $_POST)) { + return $this->allowEmpty || $_POST[$key] !== ""; + } else { + return false; + } + } + + function get($src=null, $default=null) { + $key = $this->key; + if ($key === null) return $default; + if (array_key_exists($key, $_POST)) { + $value = $_POST[$key]; + if ($value === "" && !$this->allowEmpty) return $default; + return $value; + } else { + return $default; + } + } + + function set($value, &$dest=null): void { + $key = $this->key; + if ($key === null) return; + cl::set($_POST, $key, $value); + } + + function del(&$dest=null): void { + $key = $this->key; + if ($key === null) return; + cl::del($_POST, $key); + } +} diff --git a/wip/php/access/ValueAccess.php b/wip/php/access/ValueAccess.php new file mode 100644 index 0000000..c9c5276 --- /dev/null +++ b/wip/php/access/ValueAccess.php @@ -0,0 +1,28 @@ +exists($src); + } + + function get($src, $default=null) { + if ($src === null) return $default; + else return $src; + } + + function set($value, &$dest): void { + $dest = $value; + } + + function del(&$dest): void { + $dest = null; + } +}