xenokore/utility

通用实用工具助手

2.0.2 2022-12-25 10:45 UTC

This package is auto-updated.

Last update: 2024-09-25 14:59:21 UTC


README

一个充满实用函数的库。

ArrayHelper

ArrayHelper::set(array &$array, string $key, mixed $value): array

使用"点"表示法设置数组项为给定值。
如果给定键为null,则整个数组将被替换。返回新数组。

ArrayHelper::get(array $array, string $key, $default = null, bool $throw = false): mixed

使用"点"表示法从数组获取项。
如果$throw参数设置为true,则抛出ArrayKeyNotFoundException而不是返回默认值。

ArrayHelper::isAccessible(mixed $value): bool

确定给定值是否是数组可访问的。
检查值是否是\ArrayAccess的实例。

ArrayHelper::exists(array $array, string|int $key)

确定给定的键是否存在于提供的数组中。

ArrayHelper::convertDotNotationToArray(array $array): array

根据点表示法键的数组创建多维数组。
对配置数组很有用。

示例

[
    'a.b.c' => 'value'
]

变为

[
    'a' => [
        'b' => [
            'c' => 'value'
        ]
    ]
]
ArrayHelper::convertArrayToDotNotation(array $array): array

将多维数组转换为具有点表示法键的2D数组。
https://stackoverflow.com/a/10424516/5865844
对配置数组很有用。

示例

[
    'a' => [
        'b' => [
            'c' => 'value'
        ]
    ]
]

变为

[
    'a.b.c' => 'value'
]
ArrayHelper::moveToTop(array &$array, string $key): void

将数组项移动到数组的开头。

ArrayHelper::moveToBottom(array &$array, string $key): void

将数组项移动到数组的末尾。

ArrayHelper::mergeRecursiveDistinct(array $array1, array $array2): array

递归地合并2个数组并替换不同的非数组值。

ArrayHelper::getChecksum(array $array, bool $sort = false): ?string

获取给定数组的校验和。

ArrayHelper::getValueBasedOnCurrentDay(array $array): mixed

根据当前日期从数组中获取值。每天值都会移动到下一个。最大数组大小约为2000万。(Ymd作为一个int)。

ClassHelper

ClassHelper::getClassConstant(object $class, $value, ?string $prefix = null, bool $remove_prefix = true): ?string

根据值获取常量的名称。
可以提供一个前缀以缩小搜索范围。

ClassHelper::getClassInfoFromFile(string $file_path): array

根据文件路径获取类的信息。
返回一个包含类名和完整命名空间的数组。
不使用反射也不初始化类。

ClassHelper::getClassNameFromFile(string $file_path): ?string

从包含类的文件中获取类名。
不包括命名空间。

ClassHelper::getNamespaceFromFile(string $file_path): ?string

从包含类的文件中获取命名空间。

ClassHelper::getFullClassNameFromFile(string $file_path): ?string

从包含类的文件中获取完整类名。返回的字符串包含命名空间和类名。

ClassHelper::getMethodCodeFromClass(object $class, string $method_name, bool $include_function_definition = false): ?string

从类的某个方法中获取原始代码。

ClassHelper::callPrivateMethod(object $class, string $method_name, array ...$arguments): mixed

调用类的私有方法。
对于单元测试内部工作很有用。

DirectoryHelper