Upgrade to 4.1.0
This commit is contained in:
@@ -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>
|
||||
*/
|
||||
|
@@ -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])
|
||||
];
|
||||
|
@@ -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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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');
|
||||
}
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user