rgasch / illuminate-collection-extended
Laravel 的 Collection 类的扩展类,增加了额外功能。
v1.0.2
2023-03-27 20:35 UTC
Requires
- php: ^8.1|^8.2
- illuminate/support: ^9.0|^10.0
Requires (Dev)
- nunomaduro/larastan: ^2.2
- pestphp/pest: ^1.16
- pestphp/pest-plugin-laravel: ^1.1
README
rgasch/illuminate-collection-extended 是 Laravel 的 Collection 类的一个小扩展,为 Collection 类提供了一些额外功能。
安装
首选的安装方法是使用 Composer。运行以下命令安装该包并将其添加到项目的 composer.json
文件中作为需求项
composer require rgasch/illuminate-collection-extended
特性
此类的主要特性是实现 Collection 上的 __get() 和 __set() 方法。这意味着您可以使用 '->' 语法获取和设置 Collection 元素。例如
$collection = new Rgasch\Collection(['a'=>0, 'b'=>1]);
$a = $collection->a;
print "a = $a\n";
上述代码将检索 Collection 数组中的 'a' 元素,因此打印 "0"。
需要注意的是,通过 '->' 运算符检索元素会进行测试以验证您试图检索的元素是否实际存在;当尝试检索一个不存在的元素时,将抛出 InvalidArgumentException 异常。这种行为的理由是,这将在尝试访问 Collection 元素时标记出错误和愚蠢的错误。
同样,您可以使用 "->" 运算符设置元素。例如
$collection = new Rgasch\Collection(['a'=>0, 'b'=>1]);
$collection->a = -1;
$collection->c = 2;
上述代码将生成包含 [ 'a'=>-1, 'b'=>1, 'c'=>2 ] 的集合
此类还提供了一个 create 方法,可用于从提供的输入创建一个集合。此方法还可选地接受一个名为 recursive 的第二个 boolean 参数,该参数指定是否应将嵌套数组/对象转换为嵌套 Collection。有关详细信息,请参阅 tests/CollectionTest.php。