bolt / 通用
🧰 Bolt 所有库的通用工具
Requires
- php: >=7.2.5 || ^8.0
- seld/jsonlint: ^1.7
- webmozart/assert: ^1.6
Requires (Dev)
- phpunit/phpunit: ^7.5
- symfony/phpunit-bridge: ^3.4
- symplify/easy-coding-standard: ^8.2.3
This package is auto-updated.
Last update: 2024-09-08 21:17:00 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