ReplaceSyliusTrans::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 6
rs 9.4285
cc 2
eloc 4
nc 2
nop 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