Completed
Pull Request — master (#13)
by Arnaud
18:39 queued 15:30
created

AdminConfiguration   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 10
Bugs 3 Features 2
Metric Value
wmc 2
c 10
b 3
f 2
lcom 1
cbo 3
dl 0
loc 56
ccs 18
cts 18
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
B configureOptions() 0 33 1
1
<?php
2
3
namespace LAG\AdminBundle\Admin\Configuration;
4
5
use LAG\AdminBundle\Application\Configuration\ApplicationConfiguration;
6
use LAG\AdminBundle\Configuration\Configuration;
7
use LAG\AdminBundle\Configuration\ConfigurationInterface;
8
use Symfony\Component\OptionsResolver\OptionsResolver;
9
10
/**
11
 * Ease Admin configuration manipulation.
12
 */
13
class AdminConfiguration extends Configuration implements ConfigurationInterface
14
{
15
    /**
16
     * @var ApplicationConfiguration
17
     */
18
    protected $applicationConfiguration;
19
20
    /**
21
     * AdminConfiguration constructor.
22
     *
23
     * @param ApplicationConfiguration $applicationConfiguration
24
     */
25 12
    public function __construct(ApplicationConfiguration $applicationConfiguration)
26
    {
27 12
        parent::__construct();
28
29 12
        $this->applicationConfiguration = $applicationConfiguration;
30 12
    }
31
32
    /**
33
     * @param OptionsResolver $resolver
34
     */
35 12
    public function configureOptions(OptionsResolver $resolver)
36
    {
37
        // inherited routing configuration from global application configuration
38
        $routing = $this
39 12
            ->applicationConfiguration
40 12
            ->getParameter('routing');
41
42
        // inherited max per page configuration
43
        $maxPerPage = $this
44 12
            ->applicationConfiguration
45 12
            ->getParameter('max_per_page');
46
47
        // optional options
48 12
        $resolver->setDefaults([
49
            'actions' => [
50
                'list' => [],
51
                'create' => [],
52
                'edit' => [],
53
                'delete' => [],
54 12
            ],
55
            'batch' => true,
56 12
            'routing_url_pattern' => $routing['url_pattern'],
57 12
            'routing_name_pattern' => $routing['name_pattern'],
58 12
            'controller' => 'LAGAdminBundle:CRUD',
59 12
            'max_per_page' => $maxPerPage,
60
            'data_provider' => null,
61
        ]);
62
        // required options
63 12
        $resolver->setRequired([
64 12
            'entity',
65
            'form',
66
        ]);
67 12
    }
68
}
69