Completed
Pull Request — master (#19)
by Flo
04:38
created

Link   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
lcom 0
cbo 4
dl 0
loc 36
rs 10
c 1
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B __invoke() 0 25 2
1
<?php
2
/**
3
 * Class Link | Link.php
4
 * @package Faulancer\View\Helper
5
 * @author  Florian Knapp <[email protected]>
6
 */
7
namespace Faulancer\View\Helper;
8
9
use Faulancer\Http\Request;
10
use Faulancer\Service\Config;
11
use Faulancer\Service\RequestService;
12
use Faulancer\View\AbstractViewHelper;
13
use Faulancer\View\ViewController;
14
15
/**
16
 * Class Link
17
 */
18
class Link extends AbstractViewHelper
19
{
20
21
    /**
22
     * @param ViewController $view
23
     * @param string         $routeName
24
     * @return string
25
     * @codeCoverageIgnore
26
     */
27
    public function __invoke(ViewController $view, $routeName)
28
    {
29
30
        $active         = '';
31
        $serviceLocator = $this->getServiceLocator();
32
33
        /** @var Config $config */
34
        $config = $serviceLocator->get(Config::class);
35
36
        /** @var Request $request */
37
        $request = $serviceLocator->get(RequestService::class);
38
39
        $route = $config->get('routes:' . $routeName);
40
41
        if ($request->getUri() === $route['path']) {
42
            $active = 'class="selected" ';
43
        }
44
45
        $linkPattern = '<a ' . $active . 'href="%s" onfocus="blur()">%s</a>';
46
47
        $link = sprintf($linkPattern, $route['path'], $route['title']);
48
49
        return $link;
50
51
    }
52
53
}