phpsafari / typed-collections
在PHP中创建类型化集合的简单方法 - 基于 Illuminate\Support\Collection 构建
v2.0.2
2017-07-27 22:24 UTC
Requires
- php: >=7.0.0
- illuminate/support: 5.4.*|5.3.*|5.2.*|5.1.*
- squizlabs/php_codesniffer: *
Requires (Dev)
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ~6.0
This package is not auto-updated.
Last update: 2024-09-18 20:33:37 UTC
README
这是什么?
这是一个制作类型提示数组的非常简单的方法!
$list = new UserCollection(new User());
OK
$list = new UserCollection('User');
将抛出
Vistik\Exception\InvalidTypeException: 项(字符串)'User' 不是一个 Vistik\Example\User 对象!
安装
运行 composer require vistik/typed-collections
使用内置的集合来处理基本类型
开箱即用的集合包括
- 布尔值
- 整数
- 浮点数
- 字符串
- 电子邮件
- 数字(浮点数或整数)
它们可以使用开箱即用的laravel风格助手创建
bCollect([true, false])
- 创建一个 BoolCollectioniCollect([1, 2, 3, 4])
- 创建一个 IntegerCollectionfCollect([3.14, 22/7, 6.66])
- 创建一个 FloatCollectionsCollect(['hello', 'world'])
- 创建一个 StringCollectioneCollect(['hello@example.org', 'write@me.com'])
- 创建一个 EmailCollectionnCollect([1, 2, 3, 4, 3.14, INF])
- 创建一个 NumberCollection
我必须为每个列表创建一个类型吗?是的,但
看看它有多简单
use Phpsafari\Example\User;
class UserCollection extends TypedCollection{
protected $type = User::class;
}
2个简单步骤
- 创建一个类,例如
AccountCollection
继承TypedCollection
- 只需将
protected $type = 'Vistik\Example\User';
替换为您的类
或者
如果检查不仅仅是 is_a
检查,您可以在新的集合类中重写函数:isValidItem($item)
特性
- 基于 Illuminate\Support\Collection 构建
- 实现自定义集合非常简单