MissingDependency::noExtensionHandler()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 4.125

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 5
c 1
b 0
f 1
dl 0
loc 11
ccs 3
cts 6
cp 0.5
rs 10
cc 3
nc 3
nop 1
crap 4.125
1
<?php
2
3
namespace Zenstruck\ScheduleBundle\Schedule\Exception;
4
5
use Zenstruck\ScheduleBundle\Schedule\HasMissingDependencyMessage;
6
use Zenstruck\ScheduleBundle\Schedule\Task;
7
8
/**
9
 * @author Kevin Bond <[email protected]>
10
 */
11
final class MissingDependency extends \LogicException
12
{
13 8
    public function __construct(string $message)
14
    {
15 8
        parent::__construct($message);
16 8
    }
17
18 5
    public static function noTaskRunner(Task $task): self
19
    {
20 5
        if ($task instanceof HasMissingDependencyMessage) {
21 1
            return new self($task::getMissingDependencyMessage());
22
        }
23
24 4
        return new self(\sprintf('No task runner registered for "%s".', $task));
25
    }
26
27 4
    public static function noExtensionHandler(object $extension): self
28
    {
29 4
        if ($extension instanceof HasMissingDependencyMessage) {
30 4
            return new self($extension::getMissingDependencyMessage());
31
        }
32
33
        if (\method_exists($extension, '__toString')) {
34
            return new self(\sprintf('No extension handler registered for "%s: %s".', \get_class($extension), $extension));
0 ignored issues
show
Bug introduced by
$extension of type object is incompatible with the type double|integer|string expected by parameter $values of sprintf(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

34
            return new self(\sprintf('No extension handler registered for "%s: %s".', \get_class($extension), /** @scrutinizer ignore-type */ $extension));
Loading history...
35
        }
36
37
        return new self(\sprintf('No extension handler registered for "%s".', \get_class($extension)));
38
    }
39
}
40