Upgrade to 3.6.5
This commit is contained in:
@@ -726,4 +726,37 @@ class A
|
||||
return $array;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the array using the given callback
|
||||
* using both value and key
|
||||
* @since 3.6.5
|
||||
*
|
||||
* @param array $array
|
||||
* @param callable $callback
|
||||
* @return array
|
||||
*/
|
||||
public static function filter(array $array, callable $callback): array
|
||||
{
|
||||
return array_filter($array, $callback, ARRAY_FILTER_USE_BOTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove key(s) from an array
|
||||
* @since 3.6.5
|
||||
*
|
||||
* @param array $array
|
||||
* @param int|string|array $keys
|
||||
* @return array
|
||||
*/
|
||||
public static function without(array $array, $keys): array
|
||||
{
|
||||
if (is_int($keys) || is_string($keys)) {
|
||||
$keys = static::wrap($keys);
|
||||
}
|
||||
|
||||
return static::filter($array, function ($value, $key) use ($keys) {
|
||||
return in_array($key, $keys, true) === false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -75,7 +75,12 @@ class Pagination
|
||||
|
||||
$params = [];
|
||||
|
||||
if (is_array($a) === true) {
|
||||
if (is_a($a, static::class) === true) {
|
||||
/**
|
||||
* First argument is a pagination/self object
|
||||
*/
|
||||
return $a;
|
||||
} elseif (is_array($a) === true) {
|
||||
|
||||
/**
|
||||
* First argument is an option array
|
||||
|
@@ -2,7 +2,9 @@
|
||||
|
||||
namespace Kirby\Toolkit;
|
||||
|
||||
use DateTime;
|
||||
use Exception;
|
||||
use IntlDateFormatter;
|
||||
use Kirby\Exception\InvalidArgumentException;
|
||||
|
||||
/**
|
||||
@@ -264,17 +266,33 @@ class Str
|
||||
* according to locale settings
|
||||
*
|
||||
* @param int|null $time
|
||||
* @param string|null $format
|
||||
* @param string $handler date or strftime
|
||||
* @param string|\IntlDateFormatter|null $format
|
||||
* @param string $handler date, intl or strftime
|
||||
* @return string|int
|
||||
*/
|
||||
public static function date(?int $time = null, ?string $format = null, string $handler = 'date')
|
||||
public static function date(?int $time = null, $format = null, string $handler = 'date')
|
||||
{
|
||||
if (is_null($format) === true) {
|
||||
return $time;
|
||||
}
|
||||
|
||||
// separately handle strftime to be able
|
||||
// $format is an IntlDateFormatter instance
|
||||
if (is_a($format, 'IntlDateFormatter') === true) {
|
||||
return $format->format($time ?? time());
|
||||
}
|
||||
|
||||
// `intl` handler
|
||||
if ($handler === 'intl') {
|
||||
$datetime = new DateTime();
|
||||
|
||||
if ($time !== null) {
|
||||
$datetime->setTimestamp($time);
|
||||
}
|
||||
|
||||
return IntlDateFormatter::formatObject($datetime, $format);
|
||||
}
|
||||
|
||||
// handle `strftime` to be able
|
||||
// to suppress deprecation warning
|
||||
// TODO: remove strftime support for PHP 9.0
|
||||
if ($handler === 'strftime') {
|
||||
|
Reference in New Issue
Block a user