ReplaceSyliusTrans   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 2
A replaceKeys() 0 14 3
1
<?php
2
3
namespace DoS\ResourceBundle\EventListener;
4
5
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
6
7
class ReplaceSyliusTrans
8
{
9
    protected $controller = 'bazinga.jstranslation.controller:getTranslationsAction';
10
    protected $pattern;
11
    protected $replacement;
12
13
    public function __construct($controller = null, $pattern = '/"sylius\./', $replacement = '"ui.t.')
14
    {
15
        $this->controller = $controller ?: $this->controller;
16
        $this->pattern = $pattern;
17
        $this->replacement = $replacement;
18
    }
19
20
    /**
21
     * Replace Sylius translation keys.
22
     *
23
     * @param FilterResponseEvent $event
24
     */
25
    public function replaceKeys(FilterResponseEvent $event)
26
    {
27
        if (!$event->isMasterRequest()) {
28
            return;
29
        }
30
31
        if ($this->controller !== $event->getRequest()->attributes->get('_controller')) {
32
            return;
33
        }
34
35
        $response = $event->getResponse();
36
        $content = preg_replace($this->pattern, $this->replacement, $response->getContent());
37
        $response->setContent($content);
38
    }
39
}
40