Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
8225cbd170 fix: Даунгрейд для cis (php 7.4) 2025-07-02 16:39:51 +03:00
2 changed files with 72 additions and 60 deletions

View file

@ -1,4 +1,5 @@
<?php <?php
namespace { namespace {
if (!function_exists('sqliteLower')) { if (!function_exists('sqliteLower')) {
function sqliteLower($str) function sqliteLower($str)
@ -29,9 +30,16 @@ namespace ctiso {
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [PDOStatement::class, []]); $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [PDOStatement::class, []]);
} }
function prepare(string $sql, array $options = []): PDOStatement|false /**
* @param array $options
* @param string $sql
* @return PDOStatement|false
*
*/
function prepare($sql, $options = [])
{ {
$result/*: PDOStatement*/ = parent::prepare($sql, $options); $result = parent::prepare($sql, $options);
return $result; return $result;
} }
@ -74,7 +82,10 @@ namespace ctiso {
return $connection; return $connection;
} }
public function executeQuery($query, $values = null): PDOStatement|bool /**
* @return PDOStatement|bool
*/
public function executeQuery($query, $values = null)
{ {
$stmt = $this->prepare($query); $stmt = $this->prepare($query);
@ -102,6 +113,7 @@ namespace ctiso {
/** /**
* Извлекает из базы первый элемент по запросу * Извлекает из базы первый элемент по запросу
* @return array|false
*/ */
public function fetchOneArray($query, $values = null) public function fetchOneArray($query, $values = null)
{ {

View file

@ -11,25 +11,25 @@
namespace ctiso; namespace ctiso;
class right { class right {
protected $params; protected $params;
protected $fn; protected $fn;
public function __construct($params) { public function __construct($params) {
$this->fn = array_shift($params); $this->fn = array_shift($params);
$this->params = $params; $this->params = $params;
} }
function apply() { function apply() {
$params = func_get_args(); $params = func_get_args();
array_splice($params, count($params), 0, $this->params); array_splice($params, count($params), 0, $this->params);
return call_user_func_array($this->fn, $params); return call_user_func_array($this->fn, $params);
} }
} }
class left { class left {
protected $params; protected $params;
protected $fn; protected $fn;
public function __construct($params) { public function __construct($params) {
$this->fn = array_shift($params); $this->fn = array_shift($params);
$this->params = $params; $this->params = $params;
@ -44,9 +44,9 @@ class left {
define('__', '_ARGUMENT_PLACE_'); define('__', '_ARGUMENT_PLACE_');
class partial { class partial {
protected $params; protected $params;
protected $fn; protected $fn;
public function __construct($params) { public function __construct($params) {
$this->fn = array_shift($params); $this->fn = array_shift($params);
$this->params = $params; $this->params = $params;
@ -66,7 +66,7 @@ class partial {
} }
return call_user_func_array ($this->fn, $result); return call_user_func_array ($this->fn, $result);
} }
} }
/** /**
* Композиция функций * Композиция функций
@ -99,7 +99,7 @@ class Functions {
/** /**
* Композиция функций * Композиция функций
* @param array $_rest * @param array $_rest
* @return mixed * @return mixed
*/ */
static function compose($_rest) { static function compose($_rest) {
$closure = new compose(func_get_args()); $closure = new compose(func_get_args());
@ -109,7 +109,7 @@ class Functions {
/** /**
* Карирование справа * Карирование справа
* *
* @return mixed * @return mixed
*/ */
static function rcurry($_rest) { static function rcurry($_rest) {
$closure = new right(func_get_args ()); $closure = new right(func_get_args ());
@ -119,7 +119,7 @@ class Functions {
/** /**
* Карирование слева * Карирование слева
* *
* @return mixed * @return mixed
*/ */
static function lcurry($_rest) { static function lcurry($_rest) {
$closure = new left(func_get_args ()); $closure = new left(func_get_args ());
@ -129,9 +129,9 @@ class Functions {
/** /**
* Разделение массива на два по условию * Разделение массива на два по условию
* @param mixed $pred Условие по которому разделяется массив * @param mixed $pred Условие по которому разделяется массив
* @param array $lst * @param array $lst
* *
* @return mixed * @return mixed
*/ */
static function partition($pred, $lst) { static function partition($pred, $lst) {
$left = []; $left = [];
@ -148,24 +148,24 @@ class Functions {
/** /**
* @param array $value * @param array $value
* @param string $name * @param string $name
* *
* @return mixed * @return mixed
*/ */
static function __key($value, $name) { static function __key($value, $name) {
return $value[$name]; return $value[$name];
} }
static function identity($value) { static function identity($value) {
return $value; return $value;
} }
/** /**
* @param array $a * @param array $a
* @param array $b * @param array $b
* @param $key * @param $key
* *
* @return int * @return int
*/ */
static function __cmp($a, $b, $key) { static function __cmp($a, $b, $key) {
if ($a[$key] == $b[$key]) { if ($a[$key] == $b[$key]) {
@ -173,75 +173,75 @@ class Functions {
} }
return ($a[$key] > $b[$key]) ? -1 : 1; return ($a[$key] > $b[$key]) ? -1 : 1;
} }
static function __cmp_less($a, $b, $key) { static function __cmp_less($a, $b, $key) {
if ($a[$key] == $b[$key]) { if ($a[$key] == $b[$key]) {
return 0; return 0;
} }
return ($a[$key] < $b[$key]) ? -1 : 1; return ($a[$key] < $b[$key]) ? -1 : 1;
} }
// Сравнение по ключу массиве // Сравнение по ключу массиве
static function __index($n, $key, $row) { static function __index($n, $key, $row) {
return ($row[$key] == $n); return ($row[$key] == $n);
} }
static function __div($x, $y) { static function __div($x, $y) {
return $x / $y; return $x / $y;
} }
static function __self($name, $o) { static function __self($name, $o) {
return call_user_func([$o, $name]); return call_user_func([$o, $name]);
} }
static function concat(/* $args ...*/) { static function concat(/* $args ...*/) {
$args = func_get_args(); $args = func_get_args();
return implode("", $args); return implode("", $args);
} }
static function __empty($x) { static function __empty($x) {
return empty($x); return empty($x);
} }
// Отрицание // Отрицание
static function __not($x) { static function __not($x) {
return !$x; return !$x;
} }
// Не равно // Не равно
static function __neq($x, $y) { static function __neq($x, $y) {
return $x != $y; return $x != $y;
} }
// Равно // Равно
static function __eq($x, $y) { static function __eq($x, $y) {
return $x == $y; return $x == $y;
} }
/** /**
* Извлекает из многомерого массива значения с определенным ключом * Извлекает из многомерого массива значения с определенным ключом
* @example key_values('a', array(1 => array('a' => 1, 'b' => 2))) => array(1) * @example key_values('a', array(1 => array('a' => 1, 'b' => 2))) => array(1)
* *
* @return mixed * @return mixed
*/ */
static function key_values($key, $array/*: array|ArrayIterator*/) { static function key_values($key, array $array) {
$result = []; $result = [];
foreach($array as $item) { foreach($array as $item) {
$result[] = $item[$key]; $result[] = $item[$key];
} }
return $result; return $result;
} }
static function key_values_object($key, $array/*: array|ArrayIterator*/) { static function key_values_object($key, $array/*: array|ArrayIterator*/) {
$result = []; $result = [];
foreach($array as $item) { foreach($array as $item) {
$result[] = $item->{$key}; $result[] = $item->{$key};
} }
return $result; return $result;
} }
static function assoc_key_values($key, $value, $array) { static function assoc_key_values($key, $value, $array) {
$result = []; $result = [];
foreach ($array as $item) { foreach ($array as $item) {
@ -249,7 +249,7 @@ class Functions {
} }
return $result; return $result;
} }
static function assoc_key($key, $array) { static function assoc_key($key, $array) {
$result = []; $result = [];
foreach ($array as $item) { foreach ($array as $item) {
@ -257,22 +257,22 @@ class Functions {
} }
return $result; return $result;
} }
static function _get($key, $value/*: any*/, $array/*: array*/) { static function _get($key, $value/*: any*/, $array/*: array*/) {
foreach ($array as $item) { foreach ($array as $item) {
if ($item[$key] == $value) return $item; if ($item[$key] == $value) return $item;
} }
return null; return null;
} }
static function _get_key($key, $value, $array) { static function _get_key($key, $value, $array) {
foreach ($array as $name => $item) { foreach ($array as $name => $item) {
if ($item[$key] == $value) return $name; if ($item[$key] == $value) return $name;
} }
return null; return null;
} }
/** /**
* Логическа операция && ко всем элементам массива * Логическа операция && ко всем элементам массива
* @return bool * @return bool
@ -285,17 +285,17 @@ class Functions {
} }
return true; return true;
} }
/** /**
* Логическа операция || ко всем элементам массива * Логическа операция || ко всем элементам массива
* @param array $array * @param array $array
* @param mixed $callback * @param mixed $callback
* *
* @return mixed * @return mixed
*/ */
static function some(array $array, $callback) { static function some(array $array, $callback) {
assert(is_callable($callback)); assert(is_callable($callback));
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
if (call_user_func($callback, $value) === true) { if (call_user_func($callback, $value) === true) {
return $key; return $key;
@ -303,10 +303,10 @@ class Functions {
} }
return false; return false;
} }
static function span($length, array $array) { static function span($length, array $array) {
assert(is_int($length)); assert(is_int($length));
$result = []; $result = [];
$count = count($array); $count = count($array);
for($i = 0; $i < $count; $i += $length) { for($i = 0; $i < $count; $i += $length) {
@ -314,17 +314,17 @@ class Functions {
} }
return $result; return $result;
} }
static function array_ref($data, $n) { static function array_ref($data, $n) {
return $data[$n]; return $data[$n];
} }
static function call() { static function call() {
$args = func_get_args(); $args = func_get_args();
$name = array_shift($args); $name = array_shift($args);
return call_user_func_array($name, $args); return call_user_func_array($name, $args);
} }
/** /**
* Поиск элемента в массиве * Поиск элемента в массиве
* @param mixed $cb сравнение с элементом массива * @param mixed $cb сравнение с элементом массива
@ -337,8 +337,8 @@ class Functions {
if (call_user_func_array($cb, [$value, $key, $strict])) return $key; if (call_user_func_array($cb, [$value, $key, $strict])) return $key;
} }
return null; return null;
} }
/** /**
* Выбирает все сроки из таблицы с уникальными значениями ключа * Выбирает все сроки из таблицы с уникальными значениями ключа
* @param string $name Имя ключа * @param string $name Имя ключа
@ -349,7 +349,7 @@ class Functions {
* @end example * @end example
*/ */
static function key_unique_values ($name, $table) { static function key_unique_values ($name, $table) {
// Ищем уникальные значения для заданного ключа // Ищем уникальные значения для заданного ключа
$keys = []; $keys = [];
foreach ($table as $row) { foreach ($table as $row) {
if (!in_array ($row[$name], $keys)) if (!in_array ($row[$name], $keys))
@ -357,7 +357,7 @@ class Functions {
} }
return $keys; return $keys;
} }
/** /**
* Сортировка двумерного массива по заданному ключу * Сортировка двумерного массива по заданному ключу
* @param array $array Массив * @param array $array Массив
@ -371,16 +371,16 @@ class Functions {
} }
/** /**
* Преобразует ключи элементов для многомерного массива * Преобразует ключи элементов для многомерного массива
* @return mixed * @return mixed
*/ */
static function hash_key ($key_name,$array/*: array */) { static function hash_key ($key_name,$array/*: array */) {
$result = []; $result = [];
foreach($array as $value) { foreach($array as $value) {
$result[$value[$key_name]] = $value; $result[$value[$key_name]] = $value;
} }
return $result; return $result;
} }
} }