Skip to content

[9.x] Fix schedule:list crash when call() is given class-string#45306

Merged
taylorotwell merged 2 commits into
laravel:9.xfrom
odinns:9.x
Dec 14, 2022
Merged

[9.x] Fix schedule:list crash when call() is given class-string#45306
taylorotwell merged 2 commits into
laravel:9.xfrom
odinns:9.x

Conversation

@odinns

@odinns odinns commented Dec 14, 2022

Copy link
Copy Markdown
Contributor

When creating schedule of the form:

$this->schedule->call(FooCall::class);
$this->schedule->call([FooCall::class, 'fooFunction']);

Then the ScheduleListCommand::getClosureLocation() method would crash with:

TypeError

Cannot use "::class" on value of type string

This PR fixes it by adding checks for string $callback and returning that string instead of adding ::class to it.

Tests for both single string and array callable syntax included.

When creating schedule of the form:

```php
        $this->schedule->call(FooCall::class);
        $this->schedule->call([FooCall::class, 'fooFunction']);
```

Then the `ScheduleListCommand::getClosureLocation()` method would crash with:

```
   TypeError

  Cannot use "::class" on value of type string
```

This PR fixes it by adding checks for string `$callback` and returning that string instead of adding `::class` to it.

Tests for both single string and array callable syntax included.
@odinns

odinns commented Dec 14, 2022

Copy link
Copy Markdown
Contributor Author

Thank you to @lukeraymonddowning and @olivernybroe for help with the solution! 😊👍

Comment thread src/Illuminate/Console/Scheduling/ScheduleListCommand.php Outdated
@taylorotwell
taylorotwell merged commit 1e00add into laravel:9.x Dec 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants