RedirectType   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 49
ccs 22
cts 22
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A buildForm() 0 15 1
A getBlockPrefix() 0 4 1
A configureOptions() 0 15 1
1
<?php
2
3
namespace Zenstruck\RedirectBundle\Form\Type;
4
5
use Symfony\Component\Form\AbstractType;
6
use Symfony\Component\Form\FormBuilderInterface;
7
use Symfony\Component\Form\FormInterface;
8
use Symfony\Component\OptionsResolver\OptionsResolver;
9
10
/**
11
 * @author Kevin Bond <[email protected]>
12
 */
13
class RedirectType extends AbstractType
14
{
15
    private $class;
16
17
    /**
18
     * @param string $class The Redirect class name
19
     */
20 4
    public function __construct($class)
21
    {
22 4
        $this->class = $class;
23 4
    }
24
25 4
    public function buildForm(FormBuilderInterface $builder, array $options)
26
    {
27
        $builder
28 4
            ->add('source', null, [
29 4
                'label' => 'form.source',
30 4
                'translation_domain' => 'ZenstruckRedirectBundle',
31 4
                'disabled' => $options['disable_source'],
32
            ])
33
34 4
            ->add('destination', null, [
35 4
                'label' => 'form.destination',
36
                'translation_domain' => 'ZenstruckRedirectBundle',
37
            ])
38
        ;
39 4
    }
40
41 4
    public function getBlockPrefix()
42
    {
43 4
        return 'zenstruck_redirect';
44
    }
45
46 4
    public function configureOptions(OptionsResolver $resolver)
47
    {
48 4
        $class = $this->class;
49
50 4
        $resolver->setDefaults([
51 4
            'data_class' => $this->class,
52
            'disable_source' => false,
53
            'empty_data' => function(FormInterface $form) use ($class) {
54 1
                return new $class(
55 1
                    $form->get('source')->getData(),
56 1
                    $form->get('destination')->getData()
57
                );
58 4
            },
59
        ]);
60 4
    }
61
}
62