webparking / laravel-type-safe-collection
该软件包提供了 Laravel 集合的类型安全扩展,强制使用单一类型的对象。
1.1.0
2020-09-10 10:21 UTC
Requires
- php: >=7.1.0
- ext-json: *
- illuminate/console: ^5.5|^6.0|^7.0|^8.0
- illuminate/database: ^5.5|^6.0|^7.0|^8.0
- illuminate/support: ^5.5|^6.0|^7.0|^8.0
- webmozart/assert: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12
- orchestra/database: ^3.5|^4.0|^5.0|dev-6.x
- orchestra/testbench: ^3.5|^4.0|^5.0|dev-6.x
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^6.0|^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-10 19:11:19 UTC
README
Laravel 类型安全集合
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, 荷兰