Skip to content

Commit 1d58966

Browse files
committed
Add template types to relation classes.
1 parent af50a44 commit 1d58966

11 files changed

+60
-2
lines changed

phpstan-baseline.neon

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,17 @@ parameters:
1212

1313
-
1414
message: "#^Method Illuminate\\\\Database\\\\Eloquent\\\\Model\\:\\:push\\(\\) invoked with 3 parameters, 0 required\\.$#"
15-
count: 3
15+
count: 2
1616
path: src/Relations/BelongsToMany.php
1717

18+
-
19+
message: "#^Call to an undefined method MongoDB\\\\Laravel\\\\Relations\\\\EmbedsMany\\<TRelatedModel of MongoDB\\\\Laravel\\\\Eloquent\\\\Model, TDeclaringModel of MongoDB\\\\Laravel\\\\Eloquent\\\\Model, TResult\\>\\:\\:contains\\(\\)\\.$#"
20+
count: 1
21+
path: src/Relations/EmbedsMany.php
22+
1823
-
1924
message: "#^Method Illuminate\\\\Database\\\\Eloquent\\\\Model\\:\\:push\\(\\) invoked with 3 parameters, 0 required\\.$#"
20-
count: 6
25+
count: 2
2126
path: src/Relations/MorphToMany.php
2227

2328
-

src/Relations/BelongsTo.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
use Illuminate\Database\Eloquent\Builder;
88
use Illuminate\Database\Eloquent\Model;
99

10+
/**
11+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
12+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
13+
* @extends \Illuminate\Database\Eloquent\Relations\BelongsTo<TRelatedModel, TDeclaringModel>
14+
*/
1015
class BelongsTo extends \Illuminate\Database\Eloquent\Relations\BelongsTo
1116
{
1217
/**

src/Relations/BelongsToMany.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@
2121
use function in_array;
2222
use function is_numeric;
2323

24+
/**
25+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
26+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
27+
* @extends EloquentBelongsToMany<TRelatedModel, TDeclaringModel>
28+
*/
2429
class BelongsToMany extends EloquentBelongsToMany
2530
{
2631
/**

src/Relations/EmbedsMany.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
use function throw_if;
2222
use function value;
2323

24+
/**
25+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
26+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
27+
* @template TResult
28+
* @extends EmbedsOneOrMany<TRelatedModel, TDeclaringModel, TResult>
29+
*/
2430
class EmbedsMany extends EmbedsOneOrMany
2531
{
2632
/** @inheritdoc */

src/Relations/EmbedsOne.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111

1212
use function throw_if;
1313

14+
/**
15+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
16+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
17+
* @template TResult
18+
* @extends EmbedsOneOrMany<TRelatedModel, TDeclaringModel, TResult>
19+
*/
1420
class EmbedsOne extends EmbedsOneOrMany
1521
{
1622
public function initRelation(array $models, $relation)

src/Relations/EmbedsOneOrMany.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
use function str_starts_with;
2222
use function throw_if;
2323

24+
/**
25+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
26+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
27+
* @template TResult
28+
* @extends \Illuminate\Database\Eloquent\Relations\Relation<TRelatedModel, TDeclaringModel, TResult>
29+
*/
2430
abstract class EmbedsOneOrMany extends Relation
2531
{
2632
/**

src/Relations/HasMany.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
use Illuminate\Database\Eloquent\Model;
99
use Illuminate\Database\Eloquent\Relations\HasMany as EloquentHasMany;
1010

11+
/**
12+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
13+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
14+
* @extends EloquentHasMany<TRelatedModel, TDeclaringModel>
15+
*/
1116
class HasMany extends EloquentHasMany
1217
{
1318
/**

src/Relations/HasOne.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
use Illuminate\Database\Eloquent\Model;
99
use Illuminate\Database\Eloquent\Relations\HasOne as EloquentHasOne;
1010

11+
/**
12+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
13+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
14+
* @extends EloquentHasOne<TRelatedModel, TDeclaringModel>
15+
*/
1116
class HasOne extends EloquentHasOne
1217
{
1318
/**

src/Relations/MorphMany.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
use Illuminate\Database\Eloquent\Model;
88
use Illuminate\Database\Eloquent\Relations\MorphMany as EloquentMorphMany;
99

10+
/**
11+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
12+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
13+
* @extends EloquentMorphMany<TRelatedModel, TDeclaringModel>
14+
*/
1015
class MorphMany extends EloquentMorphMany
1116
{
1217
/**

src/Relations/MorphTo.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
use Illuminate\Database\Eloquent\Model;
88
use Illuminate\Database\Eloquent\Relations\MorphTo as EloquentMorphTo;
99

10+
/**
11+
* @template TRelatedModel of \MongoDB\Laravel\Eloquent\Model
12+
* @template TDeclaringModel of \MongoDB\Laravel\Eloquent\Model
13+
* @extends EloquentMorphTo<TRelatedModel, TDeclaringModel>
14+
*/
1015
class MorphTo extends EloquentMorphTo
1116
{
1217
/** @inheritdoc */

0 commit comments

Comments
 (0)