Test Failed
Push — master ( 135f34...8b25c6 )
by Chris
33:49
created

NestedPageTrait::getParentSlug()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Leonidas\Library\Admin\Component\Page\Traits;
4
5
use Leonidas\Contracts\Admin\ParentFileResolverInterface;
6
use Leonidas\Contracts\Admin\SubmenuFileResolverInterface;
7
use Psr\Http\Message\ServerRequestInterface;
8
9
trait NestedPageTrait
10
{
11
    protected string $parentSlug;
12
13
    protected ?ParentFileResolverInterface $parentFileResolver;
14
15
    protected ?SubmenuFileResolverInterface $submenuFileResolver;
16
17
    public function __construct(
18
        string $parentSlug,
19
        ?ParentFileResolverInterface $parentFileResolver = null,
20
        ?SubmenuFileResolverInterface $subMenuFileResolver = null
21
    ) {
22
        $this->parentSlug = $parentSlug;
23
        $this->parentFileResolver = $parentFileResolver;
24
        $this->submenuFileResolver = $subMenuFileResolver;
25
    }
26
27
    public function getParentSlug(): string
28
    {
29
        return $this->parentSlug;
30
    }
31
32
    public function getSubmenuFileResolver(): ?SubmenuFileResolverInterface
33
    {
34
        return $this->submenuFileResolver;
35
    }
36
37
    public function getParentFileResolver(): ?ParentFileResolverInterface
38
    {
39
        return $this->parentFileResolver;
40
    }
41
42
    public function defineSubmenuFile(ServerRequestInterface $request): string
43
    {
44
        return ($resolver = $this->getSubmenuFileResolver())
0 ignored issues
show
Bug Best Practice introduced by
The expression return $resolver = $this...nuFile($request) : null could return the type null which is incompatible with the type-hinted return string. Consider adding an additional type-check to rule them out.
Loading history...
45
            ? $resolver->resolveSubmenuFile($request)
46
            : null;
47
    }
48
49
    public function defineParentFile(ServerRequestInterface $request): string
50
    {
51
        return ($resolver = $this->getParentFileResolver())
0 ignored issues
show
Bug Best Practice introduced by
The expression return $resolver = $this...ntFile($request) : null could return the type null which is incompatible with the type-hinted return string. Consider adding an additional type-check to rule them out.
Loading history...
52
            ? $resolver->resolveParentFile($request)
53
            : null;
54
    }
55
}
56