ideade / typed-collections
0.1.0
2024-03-05 21:15 UTC
Requires
- php: >=8.0
Requires (Dev)
- vimeo/psalm: ^5.22.2
This package is auto-updated.
Last update: 2024-09-18 03:17:51 UTC
README
安装
composer require ideade/typed-collections:^0.1
支持类型
- 标量:bool, int, float, string ✅
- 您的任何类 ✅
- 资源(包括已关闭的),数组 ❌
待办事项
添加测试。目前最新的phpunit与psalm冲突,因为它们使用的nikic/php-parser版本不同
示例
// User.php ... final readonly class User { public function __construct( public string $id, public string $login, public string $email ) {} } // UserCollection.php ... use Ideade\TypedCollections\TypedCollection; class UserCollection extends TypedCollection { protected function valueType() { return User::class; } } // SomeRepository.php ... class UserRepository { ... public function findAllUsers(): UserCollection { $users = new UserCollection(); ... foreach ($sourceUsers as $sourceUser) { $users ->add( new User( $sourceUser['id'], $sourceUser['login'], $sourceUser['email'] ) ) } return $users; } ... }