bolt/通用

🧰 Bolt 所有库的通用工具

3.0.7 2021-11-08 14:47 UTC

README

此库提供实用函数以帮助简化繁琐的任务。

尽可能,此库提供了一些内置函数的包装。我们的代码应始终抛出异常而不是触发错误/警告/通知(不包括弃用警告)。

目录

Arr

处理数组的函数。

Assert

基于 Webmozart\Assert 的附加断言。

isArrayAccessible

如果 $value 不是一个数组或实现了 ArrayAccess 的对象,则抛出 InvalidArgumentException

isArrayAccessible($value, string $message = ''): void

isInstanceOfAny

如果 $value 不是给定类/接口之一的实例,则抛出 InvalidArgumentException

isInstanceOfAny($value, string[] $classes, string $message = ''): void

isIterable

如果 $value 不是一个 可迭代 对象,则抛出 InvalidArgumentException。与 isTraversable() 相同,只是名字更好。

isIterable($value, string $message = ''): void

弃用

触发弃用警告的辅助方法。

warn

触发某个内容的弃用警告的快捷方式。

warn(string $subject, string|float $since = null, string $suggest = ''): void

示例

// Triggers warning: "Doing foo is deprecated."
Deprecated::warn('Doing foo');

// Triggers warning: "Doing foo is deprecated since 3.3 and will be removed in 4.0."
Deprecated::warn('Doing foo', 3.3);

// Triggers warning: "Doing foo is deprecated since 3.3 and will be removed in 4.0. Do bar instead."
Deprecated::warn('Doing foo', 3.3, 'Do bar instead');

method

触发方法弃用警告的快捷方式。

method(string|float $since = null, string $suggest = '', string $method = null): void

$suggest 可以是描述替代方案的句子。也可以是方法名或 class::method,这将转换为句子。

$method 默认为调用该方法的函数/方法。

  • 如果从构造函数中调用,警告消息表示该类已弃用。
  • 如果从魔术方法中调用,警告消息表示被调用的方法/属性已弃用。

示例

class Foo
{
    public function world()
    {
        // Triggers warning: "Foo::world() is deprecated since 3.3 and will be removed in 4.0. Use hello() instead."
        Deprecated::method(3.3, 'hello');
    }
}

cls

触发类弃用警告的快捷方式。

cls(string $class, string|float $since = null, string $suggest = null): void

$suggest 可以是描述替代方案的句子。也可以是类名,它将被转换为句子。

示例

// Triggers warning: "Foo\Bar is deprecated."
Deprecated::cls('Foo\Bar');

// Triggers warning: "Foo\Bar is deprecated. Use Bar\Baz instead."
Deprecated::cls('Foo\Bar', null, 'Bar\Baz');

Ini

处理PHP配置的设置和检索。

has

检查键是否存在。

has(string $key): bool

getStr

获取字符串值。如果键不存在或值为空,则返回默认值。

getStr(string $key, string $default = null): ?string

getBool

获取布尔值。如果键不存在或值为空,则返回 False。

getBool(string $key): bool

getNumeric

获取数值。如果键不存在或值为空,则返回默认值。

getNumeric(string $key, int|float $default = null): int|float|null

getBytes

获取内存大小值,例如 memory_limit,并将其转换为整数。如果键不存在或值为空,则返回默认值。

getBytes(string $key, int $default = null): ?int

set

为给定的键设置新值。如果键不存在、不可编辑或发生错误,则抛出 RuntimeException

set(string $key, ?scalar $value): void

Json

处理带有错误处理的JSON解析/转储。

parse

解析 JSON 字符串到数组或标量。如果发生错误,则抛出 ParseException

parse(string $json, int $options = 0, int $depth = 512): string

我们使用 seld/jsonlint 来确定解析失败的原因,并将其包含在异常消息中。

dump

将混合值转储到 JSON 字符串。如果发生错误,则抛出 DumpException

dump(mixed $data, int $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE, int $depth = 512): string

如果输入包含无效的 UTF-8 字符,我们会在失败之前尝试为您转换这些字符。

test

返回字符串是否为有效的 JSON。

test(string $json): bool

序列化

处理带有错误处理的PHP序列化解析/转储。

parse

解析 PHP 序列化字符串。

如果找不到序列化的类或发生其他错误,则抛出 ParseException

parse(string $value, array $options = []): mixed

注意:在PHP 5中忽略$options参数。

有关详细信息,请参阅unserialize()

dump

将任何内容转换为PHP序列化的字符串

如果输入不可序列化或出现其他错误,则抛出DumpException

dump(mixed $value): string

Str

常见字符串方法。

replaceFirst

替换$subject上的第一个$search文本。

replaceFirst(string $subject, string $search, string $replace, bool $caseSensitive = true): string

replaceLast

替换$subject上的最后一个$search文本。

replaceLast(string $subject, string $search, string $replace, bool $caseSensitive = true): string

removeFirst

移除$subject上的第一个$search文本。

removeFirst(string $subject, string $search, bool $caseSensitive = true): string

removeLast

移除$subject上的最后一个$search文本。

removeLast(string $subject, string $search, bool $caseSensitive = true): string

splitFirst

根据$delimiter分割$subject并返回第一部分。

splitFirst(string $subject, string $delimiter): string

splitLast

根据$delimiter分割$subject并返回最后一部分。

splitLast(string $subject, string $delimiter): string

endsWith

返回主题是否以搜索字符串结尾。

endsWith(string $subject, string $search, bool $caseSensitive = true): bool

className

返回字符串FQCN或对象的不带命名空间的名字。

className(string|object $class): string

humanize

将字符串从驼峰式和蛇形转换为可读字符串。

humanize(string $text): string

camelCase

将字符串从蛇形转换为驼峰式。

camelCase(string $text, bool $lowercaseFirstChar = false): string

snakeCase

将字符串从驼峰式转换为蛇形。

snakeCase(string $text): string