webparking/laravel-type-safe-collection

该软件包提供了 Laravel 集合的类型安全扩展,强制使用单一类型的对象。

1.1.0 2020-09-10 10:21 UTC

This package is auto-updated.

Last update: 2024-09-10 19:11:19 UTC


README

Laravel 类型安全集合

Build Status Quality score Code coverage

PHP 正在变得越来越成熟,并且随着每个新版本的推出,我们都可以以新的方式编写强类型代码,然而我们仍然缺少泛型列表/数组的选择。该软件包旨在在此期间提供这样的功能。

该软件包提供的 TypeSafeCollection 将确保任何对象都是你期望的对象。

安装

将此软件包添加到 composer。

composer require webparking/laravel-type-safe-collection

用法

/**
 * @method \ArrayIterator|User[] getIterator()
 * @method User|null             first()
 */
class UserCollection extends TypeSafeCollection
{
    protected $type = User::class;
}
class User extends Model
{
    public function newCollection(array $models = []): UserCollection
    {
        return new UserCollection($models);
    }
}

现在,所有对 User 的查询,如果会返回 Collection,现在将返回 UserCollection。

get_class(User::all()) // UserCollection
get_class(User::where('type', '=', 'admin')->get()) // UserCollection
get_class(User::where('id', '=', 1)->first()) // User

许可证和明信片

本软件是开源的,并使用 MIT 许可证 许可。

如果您在日常开发中使用此软件,我们非常愿意收到您家乡的明信片。

请寄往:Webparking BV, Cypresbaan 31a, 2908 LT Capelle aan den IJssel, 荷兰