Passed
Pull Request — master (#2755)
by Rafael
03:55
created

PostProcessUriEvent::getRouterConfigurations()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
dl 0
loc 7
ccs 0
cts 6
cp 0
rs 10
c 1
b 0
f 0
cc 2
nc 2
nop 0
crap 6
1
<?php
2
declare(strict_types=1);
3
4
/*
5
 * This file is part of the TYPO3 CMS project.
6
 *
7
 * It is free software; you can redistribute it and/or modify it under
8
 * the terms of the GNU General Public License, either version 2
9
 * of the License, or any later version.
10
 *
11
 * For the full copyright and license information, please read the
12
 * LICENSE.txt file that was distributed with this source code.
13
 *
14
 * The TYPO3 project - inspiring people to share!
15
 */
16
17
namespace ApacheSolrForTypo3\Solr\Event\Routing;
18
19
use Psr\Http\Message\UriInterface;
20
21
/**
22
 * This event is invoke after an uri was processed.
23
 *
24
 * @author Lars Tode <[email protected]>
25
 */
26
class PostProcessUriEvent
27
{
28
    /**
29
     * The router configuration
30
     *
31
     * @var array
32
     */
33
    protected $routerConfiguration = [];
34
35
    /**
36
     * @var UriInterface
37
     */
38
    protected $uri;
39
40
    /**
41
     * BeforeReplaceVariableInCachedUrlEvent constructor.
42
     *
43
     * @param UriInterface $uri
44
     * @param array $routerConfiguration
45
     */
46 35
    public function __construct(UriInterface $uri, array $routerConfiguration)
47
    {
48 35
        $this->uri = $uri;
49 35
        $this->routerConfiguration = $routerConfiguration;
50 35
    }
51
52
    /**
53
     * @return UriInterface
54
     */
55 35
    public function getUri(): UriInterface
56
    {
57 35
        return $this->uri;
58
    }
59
60
    /**
61
     * Replace the URI inside of this event
62
     *
63
     * @param UriInterface $uri
64
     */
65
    public function replaceUri(UriInterface  $uri)
66
    {
67
        $this->uri = $uri;
68
    }
69
70
    /**
71
     * @return bool
72
     */
73 35
    public function hasRouting(): bool
74
    {
75 35
        return !empty($this->routerConfiguration);
76
    }
77
78
    /**
79
     * Available router configurations
80
     *
81
     * @return array
82
     */
83
    public function getRouterConfiguration(): array
84
    {
85
        if (!isset($this->routerConfiguration['type']) && isset($this->routerConfiguration['0'])) {
86
            return $this->routerConfiguration[0];
87
        }
88
        return $this->routerConfiguration;
89
    }
90
91
    /**
92
     * Return all the configuration settings
93
     *
94
     * @return array[]
95
     */
96
    public function getRouterConfigurations(): array
97
    {
98
        if (isset($this->routerConfiguration['type'])) {
99
            return [$this->routerConfiguration];
100
        }
101
102
        return $this->routerConfiguration;
103
    }
104
}
105