lemaur/laravel-typed-arr

0.2.0 2023-08-12 14:01 UTC

README

Latest Version on Packagist Total Downloads License Tests GitHub Sponsors Trees

此包提供了一种面向对象的方法来检索具有正确类型的数组数据。

如果您熟悉静态分析工具,例如 phpstan,您可能遇到过 无法将混合类型转换为字符串 错误(或类似错误)。

这通常发生在您尝试将具有 mixed 返回类型的方法/函数返回的值进行类型转换时。

使用此包,您可以直接从 Arr 辅助函数 获取字符串值(不仅仅是字符串),例如

use \Illuminate\Support\Arr;

/** @var \Illuminate\Support\Stringable $myValue */
$myValue = Arr::string($data, 'my-value');

支持我

大家好,

您喜欢这个包吗?您觉得它有用,并且它非常适合您的项目吗?

我很高兴能帮助您,如果您考虑支持我的工作,我将不胜感激。

您甚至可以选择 😃


安装

您可以通过 composer 安装此包

composer require lemaur/laravel-typed-arr

用法

从 Arr 辅助函数获取 Stringable

您可以使用 string 方法将 Arr 辅助函数项检索为 Illuminate\Support\Stringable 实例。

use \Illuminate\Support\Arr;

/** @var \Illuminate\Support\Stringable $name */
$name = Arr::string($data, 'name');

从 Arr 辅助函数获取布尔值

您可以使用 boolean 方法将 Arr 辅助函数项检索为布尔值。当值为 1、"1"、true、"true"、"on" 或 "yes" 时,该方法返回 true。所有其他值将返回 false

use \Illuminate\Support\Arr;

/** @var bool $archived */
$archived = Arr::boolean($data, 'archived');

从 Arr 辅助函数获取整数

您可以使用 integer 方法将 Arr 辅助函数项检索为整数。

use \Illuminate\Support\Arr;

/** @var int $count */
$count = Arr::integer($data, 'count');

从 Arr 辅助函数获取浮点数

您可以使用 float 方法将 Arr 辅助函数项检索为浮点数。

use \Illuminate\Support\Arr;

/** @var float $amount */
$amount = Arr::float($data, 'amount');

从 Arr 辅助函数获取日期

您可以使用 date 方法将 Arr 辅助函数项检索为 Carbon 实例。

use \Illuminate\Support\Arr;

/** @var \Carbon\Carbon $birthday */
$birthday = Arr::date($data, 'birthday');

date 方法接受的第二个和第三个参数可以分别用于指定日期的格式和时区。

use \Illuminate\Support\Arr;

/** @var \Carbon\Carbon $elapsed */
$elapsed = Arr::date($data, 'elapsed', '!H:i', 'Europe/Madrid');

如果格式无效,将抛出 InvalidArgumentException

从 Arr 辅助函数获取枚举

您可以使用 enum 方法将 Arr 辅助函数项检索为 PHP 枚举 实例。如果值无效或枚举没有与输入值匹配的备份值,则返回 null。该 enum 方法接受输入值的名称和枚举类作为其第一个和第二个参数。

use App\Enums\Status;
use \Illuminate\Support\Arr;

/** @var Status $status */
$status = Arr::enum($data, 'status', Status::class);

测试

composer test

更新日志

请参阅 更新日志 以获取有关最近更改的更多信息。

贡献

请参阅 贡献指南 以获取详细信息。

安全漏洞

请查看我们关于如何报告安全漏洞的安全策略安全策略链接

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。