Repository navigation
Expand file tree
/
Copy pathCollection.php
More file actions
187 lines (148 loc) · 9.83 KB
/
Copy pathCollection.php
File metadata and controls
187 lines (148 loc) · 9.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<?php
declare(strict_types=1);
/**
* This file is part of Hyperf.
*
* @link https://www.hyperf.io
* @document https://hyperf.wiki
* @contact [email protected]
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
*/
use function PHPStan\Testing\assertType;
$collection = User::all();
assertType('Hyperf\Database\Model\Collection<int, User>', $collection);
assertType('User|null', $collection->find(1));
assertType('string|User', $collection->find(1, 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->find([1]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->load('string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->load(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->load(['string' => ['foo' => fn ($q) => $q]]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->load(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAggregate('string', 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAggregate(['string'], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAggregate(['string' => ['foo' => fn ($q) => $q]], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAggregate(['string'], 'string', 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAggregate(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}], 'string', 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadCount('string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadCount(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadCount(['string' => ['foo' => fn ($q) => $q]]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadCount(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMax('string', 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMax(['string'], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMax(['string' => ['foo' => fn ($q) => $q]], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMax(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMin('string', 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMin(['string'], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMin(['string' => ['foo' => fn ($q) => $q]], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMin(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadSum('string', 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadSum(['string'], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadSum(['string' => ['foo' => fn ($q) => $q]], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadSum(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAvg('string', 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAvg(['string'], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAvg(['string' => ['foo' => fn ($q) => $q]], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadAvg(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}], 'string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMissing('string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMissing(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMissing(['string' => ['foo' => fn ($q) => $q]]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMissing(['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMorph('string', ['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMorph('string', ['string' => ['foo' => fn ($q) => $q]]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMorph('string', ['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMorphCount('string', ['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMorphCount('string', ['string' => ['foo' => fn ($q) => $q]]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->loadMorphCount('string', ['string' => function ($query) {
// assertType('Hyperf\Database\Model\Relations\Relation<*,*,*>', $query);
}]));
assertType('bool', $collection->contains(function ($user) {
assertType('User', $user);
return true;
}));
assertType('bool', $collection->contains('string', '=', 'string'));
asserttype('array<int, (int|string)>', $collection->modelKeys());
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->merge($collection));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->merge([new User()]));
assertType(
'Hyperf\Database\Model\Collection<int, User>',
$collection->map(function ($user, $int) {
assertType('User', $user);
assertType('int', $int);
return new User();
})
);
assertType(
'Hyperf\Collection\Collection<int, string>',
$collection->map(function ($user, $int) {
assertType('User', $user);
assertType('int', $int);
return 'string';
})
);
assertType(
'Hyperf\Database\Model\Collection<int, User>',
$collection->fresh()
);
assertType(
'Hyperf\Database\Model\Collection<int, User>',
$collection->fresh('string')
);
assertType(
'Hyperf\Database\Model\Collection<int, User>',
$collection->fresh(['string'])
);
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->diff($collection));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->diff([new User()]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->intersect($collection));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->intersect([new User()]));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->unique());
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->unique(function ($user, $int) {
assertType('User', $user);
assertType('int', $int);
return $user->getTable();
}));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->unique('string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->only(null));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->only(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->except(null));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->except(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->makeHidden('string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->makeHidden(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->makeVisible('string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->makeVisible(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->append('string'));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->append(['string']));
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->unique());
assertType('Hyperf\Database\Model\Collection<int, User>', $collection->uniqueStrict());
assertType('array<User>', $collection->getDictionary());
assertType('array<User>', $collection->getDictionary($collection));
assertType('array<User>', $collection->getDictionary([new User()]));
assertType('Hyperf\Collection\Collection<(int|string), mixed>', $collection->pluck('string'));
assertType('Hyperf\Collection\Collection<(int|string), mixed>', $collection->pluck(['string']));
assertType('Hyperf\Collection\Collection<int, int>', $collection->keys());
assertType('Hyperf\Collection\Collection<int, Hyperf\Collection\Collection<int, int|User>>', $collection->zip([1]));
assertType('Hyperf\Collection\Collection<int, Hyperf\Collection\Collection<int, string|User>>', $collection->zip(['string']));
assertType('Hyperf\Collection\Collection<int, mixed>', $collection->collapse());
assertType('Hyperf\Collection\Collection<int, mixed>', $collection->flatten());
assertType('Hyperf\Collection\Collection<int, mixed>', $collection->flatten(4));
assertType('Hyperf\Collection\Collection<User, int>', $collection->flip());
assertType('Hyperf\Collection\Collection<int, int|User>', $collection->pad(2, 0));
assertType('Hyperf\Collection\Collection<int, string|User>', $collection->pad(2, 'string'));