Completed
Pull Request — master (#9)
by Iakov
03:57
created

AbstractBuildFormStep   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 56
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getName() 0 3 1
A __construct() 0 5 1
A getBaseFormBuilder() 0 14 2
1
<?php
2
3
namespace Kami\ApiCoreBundle\RequestProcessor\Step;
4
5
6
use Doctrine\Common\Annotations\Reader;
7
use Doctrine\Common\Util\Inflector;
8
use Kami\ApiCoreBundle\Security\AccessManager;
9
use Symfony\Component\Form\Extension\Core\Type\FormType;
10
use Symfony\Component\Form\FormBuilderInterface;
11
use Symfony\Component\Form\FormFactoryInterface;
12
13
abstract class AbstractBuildFormStep extends AbstractStep
14
{
15
    /**
16
     * @var FormFactoryInterface
17
     */
18
    protected $formFactory;
19
20
    /**
21
     * @var AccessManager
22
     */
23
    protected $accessManager;
24
25
    /**
26
     * @var Reader
27
     */
28
    protected $reader;
29
30
    /**
31
     * AbstractBuildFormStep constructor.
32
     *
33
     * @param FormFactoryInterface $formFactory
34
     * @param AccessManager $accessManager
35
     * @param Reader $reader
36
     */
37
    public function __construct(FormFactoryInterface $formFactory, AccessManager $accessManager, Reader $reader)
38
    {
39
        $this->formFactory = $formFactory;
40
        $this->accessManager = $accessManager;
41
        $this->reader = $reader;
42
    }
43
44
    /**
45
     * @return FormBuilderInterface
46
     */
47
    protected function getBaseFormBuilder()
48
    {
49
        $builder = $this->formFactory->createNamedBuilder(
50
            Inflector::tableize($this->getFromResponse('reflection')->getShortName()),
51
            FormType::class,
52
            $this->getFromResponse('entity'),
53
            ['csrf_protection' => false]
54
        );
55
56
        if ('PUT' === $this->request->getMethod()) {
57
            $builder->setMethod('PUT');
58
        }
59
60
        return $builder;
61
    }
62
63
    /**
64
     * @return string
65
     */
66
    public function getName()
67
    {
68
        return 'generic_build_form_step';
69
    }
70
}