fix: Даунгрейд для cis (php 7.4)
This commit is contained in:
parent
36c81135f3
commit
8225cbd170
2 changed files with 72 additions and 60 deletions
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace {
|
||||
if (!function_exists('sqliteLower')) {
|
||||
function sqliteLower($str)
|
||||
|
|
@ -29,9 +30,16 @@ namespace ctiso {
|
|||
$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;
|
||||
}
|
||||
|
||||
|
|
@ -74,7 +82,10 @@ namespace ctiso {
|
|||
return $connection;
|
||||
}
|
||||
|
||||
public function executeQuery($query, $values = null): PDOStatement|bool
|
||||
/**
|
||||
* @return PDOStatement|bool
|
||||
*/
|
||||
public function executeQuery($query, $values = null)
|
||||
{
|
||||
$stmt = $this->prepare($query);
|
||||
|
||||
|
|
@ -102,6 +113,7 @@ namespace ctiso {
|
|||
|
||||
/**
|
||||
* Извлекает из базы первый элемент по запросу
|
||||
* @return array|false
|
||||
*/
|
||||
public function fetchOneArray($query, $values = null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,25 +11,25 @@
|
|||
namespace ctiso;
|
||||
|
||||
class right {
|
||||
protected $params;
|
||||
protected $params;
|
||||
protected $fn;
|
||||
|
||||
|
||||
public function __construct($params) {
|
||||
$this->fn = array_shift($params);
|
||||
$this->params = $params;
|
||||
}
|
||||
|
||||
|
||||
function apply() {
|
||||
$params = func_get_args();
|
||||
array_splice($params, count($params), 0, $this->params);
|
||||
return call_user_func_array($this->fn, $params);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class left {
|
||||
protected $params;
|
||||
protected $params;
|
||||
protected $fn;
|
||||
|
||||
|
||||
public function __construct($params) {
|
||||
$this->fn = array_shift($params);
|
||||
$this->params = $params;
|
||||
|
|
@ -44,9 +44,9 @@ class left {
|
|||
|
||||
define('__', '_ARGUMENT_PLACE_');
|
||||
class partial {
|
||||
protected $params;
|
||||
protected $params;
|
||||
protected $fn;
|
||||
|
||||
|
||||
public function __construct($params) {
|
||||
$this->fn = array_shift($params);
|
||||
$this->params = $params;
|
||||
|
|
@ -66,7 +66,7 @@ class partial {
|
|||
}
|
||||
return call_user_func_array ($this->fn, $result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Композиция функций
|
||||
|
|
@ -99,7 +99,7 @@ class Functions {
|
|||
/**
|
||||
* Композиция функций
|
||||
* @param array $_rest
|
||||
* @return mixed
|
||||
* @return mixed
|
||||
*/
|
||||
static function compose($_rest) {
|
||||
$closure = new compose(func_get_args());
|
||||
|
|
@ -109,7 +109,7 @@ class Functions {
|
|||
/**
|
||||
* Карирование справа
|
||||
*
|
||||
* @return mixed
|
||||
* @return mixed
|
||||
*/
|
||||
static function rcurry($_rest) {
|
||||
$closure = new right(func_get_args ());
|
||||
|
|
@ -119,7 +119,7 @@ class Functions {
|
|||
/**
|
||||
* Карирование слева
|
||||
*
|
||||
* @return mixed
|
||||
* @return mixed
|
||||
*/
|
||||
static function lcurry($_rest) {
|
||||
$closure = new left(func_get_args ());
|
||||
|
|
@ -129,9 +129,9 @@ class Functions {
|
|||
/**
|
||||
* Разделение массива на два по условию
|
||||
* @param mixed $pred Условие по которому разделяется массив
|
||||
* @param array $lst
|
||||
* @param array $lst
|
||||
*
|
||||
* @return mixed
|
||||
* @return mixed
|
||||
*/
|
||||
static function partition($pred, $lst) {
|
||||
$left = [];
|
||||
|
|
@ -148,24 +148,24 @@ class Functions {
|
|||
|
||||
/**
|
||||
* @param array $value
|
||||
* @param string $name
|
||||
* @param string $name
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
static function __key($value, $name) {
|
||||
return $value[$name];
|
||||
}
|
||||
|
||||
|
||||
static function identity($value) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $a
|
||||
* @param array $b
|
||||
* @param $key
|
||||
*
|
||||
* @return int
|
||||
* @return int
|
||||
*/
|
||||
static function __cmp($a, $b, $key) {
|
||||
if ($a[$key] == $b[$key]) {
|
||||
|
|
@ -173,75 +173,75 @@ class Functions {
|
|||
}
|
||||
return ($a[$key] > $b[$key]) ? -1 : 1;
|
||||
}
|
||||
|
||||
|
||||
static function __cmp_less($a, $b, $key) {
|
||||
if ($a[$key] == $b[$key]) {
|
||||
return 0;
|
||||
}
|
||||
return ($a[$key] < $b[$key]) ? -1 : 1;
|
||||
}
|
||||
|
||||
|
||||
// Сравнение по ключу массиве
|
||||
static function __index($n, $key, $row) {
|
||||
return ($row[$key] == $n);
|
||||
}
|
||||
|
||||
|
||||
static function __div($x, $y) {
|
||||
return $x / $y;
|
||||
}
|
||||
|
||||
|
||||
static function __self($name, $o) {
|
||||
return call_user_func([$o, $name]);
|
||||
}
|
||||
|
||||
|
||||
static function concat(/* $args ...*/) {
|
||||
$args = func_get_args();
|
||||
return implode("", $args);
|
||||
}
|
||||
|
||||
|
||||
static function __empty($x) {
|
||||
return empty($x);
|
||||
}
|
||||
|
||||
|
||||
// Отрицание
|
||||
static function __not($x) {
|
||||
return !$x;
|
||||
}
|
||||
|
||||
|
||||
// Не равно
|
||||
static function __neq($x, $y) {
|
||||
return $x != $y;
|
||||
}
|
||||
|
||||
|
||||
// Равно
|
||||
static function __eq($x, $y) {
|
||||
return $x == $y;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Извлекает из многомерого массива значения с определенным ключом
|
||||
* @example key_values('a', array(1 => array('a' => 1, 'b' => 2))) => array(1)
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
static function key_values($key, $array/*: array|ArrayIterator*/) {
|
||||
static function key_values($key, array $array) {
|
||||
$result = [];
|
||||
|
||||
|
||||
foreach($array as $item) {
|
||||
$result[] = $item[$key];
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
static function key_values_object($key, $array/*: array|ArrayIterator*/) {
|
||||
$result = [];
|
||||
|
||||
|
||||
foreach($array as $item) {
|
||||
$result[] = $item->{$key};
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
static function assoc_key_values($key, $value, $array) {
|
||||
$result = [];
|
||||
foreach ($array as $item) {
|
||||
|
|
@ -249,7 +249,7 @@ class Functions {
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
static function assoc_key($key, $array) {
|
||||
$result = [];
|
||||
foreach ($array as $item) {
|
||||
|
|
@ -257,22 +257,22 @@ class Functions {
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
static function _get($key, $value/*: any*/, $array/*: array*/) {
|
||||
foreach ($array as $item) {
|
||||
if ($item[$key] == $value) return $item;
|
||||
}
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
static function _get_key($key, $value, $array) {
|
||||
foreach ($array as $name => $item) {
|
||||
if ($item[$key] == $value) return $name;
|
||||
}
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Логическа операция && ко всем элементам массива
|
||||
* @return bool
|
||||
|
|
@ -285,17 +285,17 @@ class Functions {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Логическа операция || ко всем элементам массива
|
||||
* @param array $array
|
||||
* @param mixed $callback
|
||||
* @param array $array
|
||||
* @param mixed $callback
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
static function some(array $array, $callback) {
|
||||
assert(is_callable($callback));
|
||||
|
||||
|
||||
foreach ($array as $key => $value) {
|
||||
if (call_user_func($callback, $value) === true) {
|
||||
return $key;
|
||||
|
|
@ -303,10 +303,10 @@ class Functions {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static function span($length, array $array) {
|
||||
assert(is_int($length));
|
||||
|
||||
|
||||
$result = [];
|
||||
$count = count($array);
|
||||
for($i = 0; $i < $count; $i += $length) {
|
||||
|
|
@ -314,17 +314,17 @@ class Functions {
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
static function array_ref($data, $n) {
|
||||
return $data[$n];
|
||||
}
|
||||
|
||||
|
||||
static function call() {
|
||||
$args = func_get_args();
|
||||
$args = func_get_args();
|
||||
$name = array_shift($args);
|
||||
return call_user_func_array($name, $args);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Поиск элемента в массиве
|
||||
* @param mixed $cb сравнение с элементом массива
|
||||
|
|
@ -337,8 +337,8 @@ class Functions {
|
|||
if (call_user_func_array($cb, [$value, $key, $strict])) return $key;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Выбирает все сроки из таблицы с уникальными значениями ключа
|
||||
* @param string $name Имя ключа
|
||||
|
|
@ -349,7 +349,7 @@ class Functions {
|
|||
* @end example
|
||||
*/
|
||||
static function key_unique_values ($name, $table) {
|
||||
// Ищем уникальные значения для заданного ключа
|
||||
// Ищем уникальные значения для заданного ключа
|
||||
$keys = [];
|
||||
foreach ($table as $row) {
|
||||
if (!in_array ($row[$name], $keys))
|
||||
|
|
@ -357,7 +357,7 @@ class Functions {
|
|||
}
|
||||
return $keys;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Сортировка двумерного массива по заданному ключу
|
||||
* @param array $array Массив
|
||||
|
|
@ -371,16 +371,16 @@ class Functions {
|
|||
}
|
||||
|
||||
/**
|
||||
* Преобразует ключи элементов для многомерного массива
|
||||
* Преобразует ключи элементов для многомерного массива
|
||||
* @return mixed
|
||||
*/
|
||||
static function hash_key ($key_name,$array/*: array */) {
|
||||
$result = [];
|
||||
|
||||
foreach($array as $value) {
|
||||
$result[$value[$key_name]] = $value;
|
||||
$result[$value[$key_name]] = $value;
|
||||
}
|
||||
return $result;
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue