Upgrade to 4.1.0

This commit is contained in:
Bastian Allgeier
2024-01-30 16:41:06 +01:00
parent 5c44c8fcfd
commit 9345fc1a0b
59 changed files with 678 additions and 274 deletions

View File

@@ -351,6 +351,31 @@ class A
return in_array($value, $array, $strict);
}
/**
* Join array elements as a string,
* also supporting nested arrays
*/
public static function implode(
array $array,
string $separator = ''
): string {
$result = '';
foreach ($array as $value) {
if (empty($result) === false) {
$result .= $separator;
}
if (is_array($value) === true) {
$value = static::implode($value, $separator);
}
$result .= $value;
}
return $result;
}
/**
* Checks whether an array is associative or not
*
@@ -914,9 +939,7 @@ class A
*
* // with callback
* A::update($user, [
* 'username' => function ($username) {
* return $username . ' j. simpson'
* }
* 'username' => fn ($username) => $username . ' j. simpson'
* ]);
* </code>
*/

View File

@@ -1258,74 +1258,58 @@ Collection::$filters['!='] = function ($collection, $field, $test, $split = fals
* In Filter
*/
Collection::$filters['in'] = [
'validator' => function ($value, $test) {
return in_array($value, $test) === true;
},
'strict' => false
'validator' => fn ($value, $test) => in_array($value, $test) === true,
'strict' => false
];
/**
* Not In Filter
*/
Collection::$filters['not in'] = [
'validator' => function ($value, $test) {
return in_array($value, $test) === false;
},
'validator' => fn ($value, $test) => in_array($value, $test) === false
];
/**
* Contains Filter
*/
Collection::$filters['*='] = [
'validator' => function ($value, $test) {
return strpos($value, $test) !== false;
},
'strict' => false
'validator' => fn ($value, $test) => strpos($value, $test) !== false,
'strict' => false
];
/**
* Not Contains Filter
*/
Collection::$filters['!*='] = [
'validator' => function ($value, $test) {
return strpos($value, $test) === false;
},
'validator' => fn ($value, $test) => strpos($value, $test) === false
];
/**
* More Filter
*/
Collection::$filters['>'] = [
'validator' => function ($value, $test) {
return $value > $test;
}
'validator' => fn ($value, $test) => $value > $test
];
/**
* Min Filter
*/
Collection::$filters['>='] = [
'validator' => function ($value, $test) {
return $value >= $test;
}
'validator' => fn ($value, $test) => $value >= $test
];
/**
* Less Filter
*/
Collection::$filters['<'] = [
'validator' => function ($value, $test) {
return $value < $test;
}
'validator' => fn ($value, $test) => $value < $test
];
/**
* Max Filter
*/
Collection::$filters['<='] = [
'validator' => function ($value, $test) {
return $value <= $test;
}
'validator' => fn ($value, $test) => $value <= $test
];
/**
@@ -1340,9 +1324,7 @@ Collection::$filters['$='] = [
* Not Ends With Filter
*/
Collection::$filters['!$='] = [
'validator' => function ($value, $test) {
return V::endsWith($value, $test) === false;
}
'validator' => fn ($value, $test) => V::endsWith($value, $test) === false
];
/**
@@ -1357,19 +1339,15 @@ Collection::$filters['^='] = [
* Not Starts With Filter
*/
Collection::$filters['!^='] = [
'validator' => function ($value, $test) {
return V::startsWith($value, $test) === false;
}
'validator' => fn ($value, $test) => V::startsWith($value, $test) === false
];
/**
* Between Filter
*/
Collection::$filters['between'] = Collection::$filters['..'] = [
'validator' => function ($value, $test) {
return V::between($value, ...$test) === true;
},
'strict' => false
'validator' => fn ($value, $test) => V::between($value, ...$test) === true,
'strict' => false
];
/**
@@ -1384,9 +1362,7 @@ Collection::$filters['*'] = [
* Not Match Filter
*/
Collection::$filters['!*'] = [
'validator' => function ($value, $test) {
return V::match($value, $test) === false;
}
'validator' => fn ($value, $test) => V::match($value, $test) === false
];
/**
@@ -1421,63 +1397,49 @@ Collection::$filters['minwords'] = [
* Date Equals Filter
*/
Collection::$filters['date =='] = [
'validator' => function ($value, $test) {
return V::date($value, '==', $test);
}
'validator' => fn ($value, $test) => V::date($value, '==', $test)
];
/**
* Date Not Equals Filter
*/
Collection::$filters['date !='] = [
'validator' => function ($value, $test) {
return V::date($value, '!=', $test);
}
'validator' => fn ($value, $test) => V::date($value, '!=', $test)
];
/**
* Date More Filter
*/
Collection::$filters['date >'] = [
'validator' => function ($value, $test) {
return V::date($value, '>', $test);
}
'validator' => fn ($value, $test) => V::date($value, '>', $test)
];
/**
* Date Min Filter
*/
Collection::$filters['date >='] = [
'validator' => function ($value, $test) {
return V::date($value, '>=', $test);
}
'validator' => fn ($value, $test) => V::date($value, '>=', $test)
];
/**
* Date Less Filter
*/
Collection::$filters['date <'] = [
'validator' => function ($value, $test) {
return V::date($value, '<', $test);
}
'validator' => fn ($value, $test) => V::date($value, '<', $test)
];
/**
* Date Max Filter
*/
Collection::$filters['date <='] = [
'validator' => function ($value, $test) {
return V::date($value, '<=', $test);
}
'validator' => fn ($value, $test) => V::date($value, '<=', $test)
];
/**
* Date Between Filter
*/
Collection::$filters['date between'] = Collection::$filters['date ..'] = [
'validator' => function ($value, $test) {
return
'validator' => fn ($value, $test) =>
V::date($value, '>=', $test[0]) &&
V::date($value, '<=', $test[1]);
}
V::date($value, '<=', $test[1])
];

View File

@@ -222,7 +222,7 @@ class Date extends DateTime
*/
public function microsecond(): int
{
return $this->format('u');
return (int)$this->format('u');
}
/**
@@ -230,7 +230,7 @@ class Date extends DateTime
*/
public function millisecond(): int
{
return $this->format('v');
return (int)$this->format('v');
}
/**

View File

@@ -698,7 +698,7 @@ class Str
string $string = null,
string $needle,
bool $caseInsensitive = false
): int|bool {
): int|false {
if ($needle === '') {
throw new InvalidArgumentException('The needle must not be empty');
}

View File

@@ -134,16 +134,13 @@ class V
$value = $params[$index] ?? null;
if (is_array($value) === true) {
try {
foreach ($value as $key => $item) {
if (is_array($item) === true) {
$value[$key] = implode('|', $item);
}
foreach ($value as $key => $item) {
if (is_array($item) === true) {
$value[$key] = A::implode($item, '|');
}
$value = implode(', ', $value);
} catch (Throwable) {
$value = '-';
}
$value = implode(', ', $value);
}
$arguments[$parameter->getName()] = $value;