Skip to content

Commit ec2d080

Browse files
authored
Merge pull request ludoguenet#1 from szepeviktor/fix2
Fix method calls and improve PHPStan analysis
2 parents b37a8bb + 44b4315 commit ec2d080

File tree

4 files changed

+31
-6
lines changed

4 files changed

+31
-6
lines changed

phpstan.neon

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ includes:
33

44
parameters:
55
paths:
6-
- src
6+
- src/
7+
- tests/phpstan/Users.php
78

89
level: 5
9-
10-
ignoreErrors:
11-
- '#Trait .* is used zero times and is not analysed#'

src/Models/Concerns/HasSchedules.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ trait HasSchedules
1919
{
2020
/**
2121
* Get all schedules for this model.
22+
*
23+
* @return MorphMany<Schedule, $this>
2224
*/
2325
public function schedules(): MorphMany
2426
{
@@ -27,6 +29,8 @@ public function schedules(): MorphMany
2729

2830
/**
2931
* Get only active schedules.
32+
*
33+
* @return MorphMany<Schedule, $this>
3034
*/
3135
public function activeSchedules(): MorphMany
3236
{
@@ -35,6 +39,8 @@ public function activeSchedules(): MorphMany
3539

3640
/**
3741
* Get schedules for a specific date.
42+
*
43+
* @return MorphMany<Schedule, $this>
3844
*/
3945
public function schedulesForDate(string $date): MorphMany
4046
{
@@ -43,6 +49,8 @@ public function schedulesForDate(string $date): MorphMany
4349

4450
/**
4551
* Get schedules within a date range.
52+
*
53+
* @return MorphMany<Schedule, $this>
4654
*/
4755
public function schedulesForDateRange(string $startDate, string $endDate): MorphMany
4856
{
@@ -51,6 +59,8 @@ public function schedulesForDateRange(string $startDate, string $endDate): Morph
5159

5260
/**
5361
* Get recurring schedules.
62+
*
63+
* @return MorphMany<Schedule, $this>
5464
*/
5565
public function recurringSchedules(): MorphMany
5666
{
@@ -70,15 +80,15 @@ public function createSchedule(): ScheduleBuilder
7080
*/
7181
public function hasScheduleConflict(Schedule $schedule): bool
7282
{
73-
return app(ConflictDetectionService::class)->hasConflicts($this, $schedule);
83+
return app(ConflictDetectionService::class)->hasConflicts($schedule);
7484
}
7585

7686
/**
7787
* Find all schedules that conflict with the given schedule.
7888
*/
7989
public function findScheduleConflicts(Schedule $schedule): array
8090
{
81-
return app(ConflictDetectionService::class)->findConflicts($this, $schedule);
91+
return app(ConflictDetectionService::class)->findConflicts($schedule);
8292
}
8393

8494
/**

src/Models/Schedule.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ public function schedulable(): MorphTo
7070

7171
/**
7272
* Get the schedule periods.
73+
*
74+
* @return HasMany<SchedulePeriod, $this>
7375
*/
7476
public function periods(): HasMany
7577
{

tests/phpstan/Users.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
class Users extends \Illuminate\Database\Eloquent\Model
4+
{
5+
use \Zap\Models\Concerns\HasSchedules;
6+
7+
protected $table = 'users';
8+
9+
protected $fillable = ['name', 'email'];
10+
11+
public function getKey()
12+
{
13+
return 1;
14+
}
15+
}

0 commit comments

Comments
 (0)