phpsafari/typed-collections

在PHP中创建类型化集合的简单方法 - 基于 Illuminate\Support\Collection 构建

v2.0.2 2017-07-27 22:24 UTC

This package is not auto-updated.

Last update: 2024-09-18 20:33:37 UTC


README

Build Status

这是什么?

这是一个制作类型提示数组的非常简单的方法!

$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]) - 创建一个 BoolCollection
  • iCollect([1, 2, 3, 4]) - 创建一个 IntegerCollection
  • fCollect([3.14, 22/7, 6.66]) - 创建一个 FloatCollection
  • sCollect(['hello', 'world']) - 创建一个 StringCollection
  • eCollect(['hello@example.org', 'write@me.com']) - 创建一个 EmailCollection
  • nCollect([1, 2, 3, 4, 3.14, INF]) - 创建一个 NumberCollection

我必须为每个列表创建一个类型吗?是的,但

看看它有多简单

use Phpsafari\Example\User;
class UserCollection extends TypedCollection{
    protected $type = User::class;
}

2个简单步骤

  1. 创建一个类,例如 AccountCollection 继承 TypedCollection
  2. 只需将 protected $type = 'Vistik\Example\User'; 替换为您的类

或者

如果检查不仅仅是 is_a 检查,您可以在新的集合类中重写函数:isValidItem($item)

特性