Completed
Push — dev-master ( 710732...009af4 )
by Karol
03:53 queued 10s
created

getParamConverterListener()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace Pgs\HashIdBundle\Service;
4
5
use Pgs\HashIdBundle\ParametersProcessor\Factory\DecodeParametersProcessorFactory;
6
use Pgs\HashIdBundle\ParametersProcessor\ParametersProcessorInterface;
7
use Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener;
8
use Symfony\Component\HttpKernel\Event\KernelEvent;
9
10
abstract class AbstractDecodeControllerParameters
11
{
12
    protected $parametersProcessorFactory;
13
    protected $paramConverterListener;
14
15
    public function __construct(DecodeParametersProcessorFactory $parametersProcessorFactory)
16
    {
17
        $this->parametersProcessorFactory = $parametersProcessorFactory;
18
    }
19
20
    public function getParamConverterListener(): ?ParamConverterListener
21
    {
22
        return $this->paramConverterListener;
23
    }
24
25
    public function getParametersProcessorFactory(): DecodeParametersProcessorFactory
26
    {
27
        return $this->parametersProcessorFactory;
28
    }
29
30
    public function setParamConverterListener(ParamConverterListener $paramConverterListener): void
31
    {
32
        $this->paramConverterListener = $paramConverterListener;
33
    }
34
35
    protected function processRequestParametersWithParamConverter(KernelEvent $event): void
36
    {
37
        if (null !== $this->getParamConverterListener()) {
38
            $this->getParamConverterListener()->onKernelController($event);
39
        }
40
    }
41
42
    protected function processRequestParameters(
43
        KernelEvent $event,
44
        ParametersProcessorInterface $parametersProcessor
45
    ): void {
46
        if ($parametersProcessor->needToProcess()) {
47
            $requestParams = $event->getRequest()->attributes->all();
48
            $processedParams = $parametersProcessor->process($requestParams);
49
            $event->getRequest()->attributes->replace($processedParams);
50
        }
51
    }
52
}
53