LinkExtension   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 53.85%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 5
dl 0
loc 54
ccs 7
cts 13
cp 0.5385
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getFilters() 0 7 1
A playerLinkFilter() 0 4 1
A teamLinkFilter() 0 4 1
A getName() 0 4 1
1
<?php
2
3
namespace OSS\CoreBundle\Twig;
4
5
use OSS\CoreBundle\Entity\Player;
6
use OSS\CoreBundle\Entity\Team;
7
use Symfony\Component\Routing\Router;
8
9
class LinkExtension extends \Twig_Extension
10
{
11
    /**
12
     * @var Router
13
     */
14
    private $router;
15
16
    /**
17
     * @param Router $router
18
     */
19 2
    public function __construct(Router $router)
20
    {
21 2
        $this->router = $router;
22 2
    }
23
24
    /**
25
     * @return \Twig_SimpleFilter
26
     */
27
    public function getFilters()
28
    {
29
        return array(
30
            new \Twig_SimpleFilter('playerLink', array($this, 'playerLinkFilter'), array('is_safe' => array('html'))),
31
            new \Twig_SimpleFilter('teamLink', array($this, 'teamLinkFilter'), array('is_safe' => array('html'))),
32
        );
33
    }
34
35
    /**
36
     * @param Player $player
37
     *
38
     * @return string
39
     */
40 1
    public function playerLinkFilter(Player $player)
41
    {
42 1
        return '<a href="' . $this->router->generate('profile_player', array('id' => $player->getId())) . '">' . $player->getName() . '</a>';
43
    }
44
45
    /**
46
     * @param Team $team
47
     *
48
     * @return string
49
     */
50 1
    public function teamLinkFilter(Team $team)
51
    {
52 1
        return '<a href="' . $this->router->generate('profile_team', array('id' => $team->getId())) . '">' . $team->getName() . '</a>';
53
    }
54
55
    /**
56
     * @return string
57
     */
58
    public function getName()
59
    {
60
        return 'oss.core.link';
61
    }
62
}
63