1 | <?php |
||
2 | |||
3 | declare(strict_types=1); |
||
4 | |||
5 | namespace RemotelyLiving\Doorkeeper\Rules; |
||
6 | |||
7 | use RemotelyLiving\Doorkeeper\Identification; |
||
8 | use RemotelyLiving\Doorkeeper\RequestorInterface; |
||
9 | |||
10 | abstract class AbstractRule implements RuleInterface |
||
11 | { |
||
12 | /** |
||
13 | * @var \RemotelyLiving\Doorkeeper\Rules\RuleInterface[] |
||
14 | */ |
||
15 | private $prerequisites = []; |
||
16 | |||
17 | final public function addPrerequisite(RuleInterface $rule): void |
||
18 | { |
||
19 | $this->prerequisites[] = $rule; |
||
20 | } |
||
21 | |||
22 | final public function hasPrerequisites(): bool |
||
23 | { |
||
24 | return (bool) $this->prerequisites; |
||
25 | } |
||
26 | |||
27 | final public function getPrerequisites(): iterable |
||
28 | { |
||
29 | return $this->prerequisites; |
||
30 | } |
||
31 | |||
32 | public function getValue() |
||
33 | { |
||
34 | return null; |
||
35 | } |
||
36 | |||
37 | final public function canBeSatisfied(RequestorInterface $requestor = null): bool |
||
38 | { |
||
39 | if ($this->hasPrerequisites()) { |
||
40 | foreach ($this->prerequisites as $prerequisite) { |
||
41 | if (!$prerequisite->canBeSatisfied($requestor)) { |
||
42 | return false; |
||
43 | } |
||
44 | } |
||
45 | } |
||
46 | |||
47 | return $this->childCanBeSatisfied($requestor); |
||
48 | } |
||
49 | |||
50 | public function jsonSerialize(): array |
||
51 | { |
||
52 | return [ |
||
53 | 'type' => static::class, |
||
54 | 'value' => $this->getValue(), |
||
0 ignored issues
–
show
|
|||
55 | 'prerequisites' => $this->prerequisites, |
||
56 | ]; |
||
57 | } |
||
58 | |||
59 | protected function requestorHasMatchingId( |
||
60 | RequestorInterface $requestor = null, |
||
61 | Identification\IdentificationInterface $identification |
||
62 | ): bool { |
||
63 | if (!$requestor) { |
||
64 | return false; |
||
65 | } |
||
66 | |||
67 | return $requestor->hasIdentification($identification); |
||
68 | } |
||
69 | |||
70 | abstract protected function childCanBeSatisfied(RequestorInterface $requestor = null): bool; |
||
71 | } |
||
72 |
This check looks for function or method calls that always return null and whose return value is used.
The method
getObject()
can return nothing but null, so it makes no sense to use the return value.The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.