AbstractResolver::createFormBuilder()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
c 0
b 0
f 0
ccs 0
cts 2
cp 0
rs 10
cc 1
nc 1
nop 3
crap 2
1
<?php
2
/*******************************************************************************
3
 *  This file is part of the GraphQL Bundle package.
4
 *
5
 *  (c) YnloUltratech <[email protected]>
6
 *
7
 *  For the full copyright and license information, please view the LICENSE
8
 *  file that was distributed with this source code.
9
 ******************************************************************************/
10
11
namespace Ynlo\GraphQLBundle\Resolver;
12
13
use Doctrine\ORM\EntityManager;
14
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
15
use Symfony\Component\Form\FormBuilderInterface;
16
use Symfony\Component\Validator\Validator\ValidatorInterface;
17
use Ynlo\GraphQLBundle\Events\EventDispatcherAwareInterface;
18
use Ynlo\GraphQLBundle\Events\EventDispatcherAwareTrait;
19
use Ynlo\GraphQLBundle\Extension\ExtensionInterface;
20
use Ynlo\GraphQLBundle\Extension\ExtensionsAwareInterface;
21
22
/**
23
 * AbstractResolver is a simple implementation of a Resolver.
24
 *
25
 * It provides methods to common features needed in resolvers.
26
 */
27
abstract class AbstractResolver implements ResolverInterface, ExtensionsAwareInterface, EventDispatcherAwareInterface
28
{
29
    use ContainerAwareTrait;
30
    use EventDispatcherAwareTrait;
31
32
    /**
33
     * @var ResolverContext
34
     */
35
    protected $context;
36
37
    /**
38
     * @var ExtensionInterface[]
39
     */
40
    protected $extensions = [];
41
42
    /**
43
     * {@inheritDoc}
44
     */
45
    public function setExtensions($extensions)
46
    {
47
        $this->extensions = $extensions;
48
    }
49
50
    /**
51
     * @return ResolverContext
52
     */
53
    public function getContext(): ResolverContext
54
    {
55
        return $this->context;
56
    }
57
58
    /**
59
     * @param ResolverContext $context
60
     */
61
    public function setContext(ResolverContext $context)
62
    {
63
        $this->context = $context;
64
    }
65
66
    /**
67
     * Gets a container service by its id.
68
     *
69
     * @param string $id The service id
70
     *
71
     * @return mixed The service
72
     */
73
    protected function get($id)
74
    {
75
        return $this->container->get($id);
76
    }
77
78
    /**
79
     * @return EntityManager
80
     */
81
    protected function getManager(): EntityManager
82
    {
83
        return $this->get('doctrine')->getManager();
84
    }
85
86
    /**
87
     * @return ValidatorInterface
88
     */
89
    protected function getValidator(): ValidatorInterface
90
    {
91
        return $this->get('validator');
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->get('validator') could return the type null which is incompatible with the type-hinted return Symfony\Component\Valida...ator\ValidatorInterface. Consider adding an additional type-check to rule them out.
Loading history...
92
    }
93
94
    /**
95
     * Creates and returns a Form Builder instance from the type of the form.
96
     *
97
     * @param string $type    The fully qualified class name of the form type
98
     * @param mixed  $data    The initial data for the form
99
     * @param array  $options Options for the form
100
     *
101
     * @return FormBuilderInterface
102
     */
103
    protected function createFormBuilder($type, $data = null, array $options = [])
104
    {
105
        return $this->container->get('form.factory')->createBuilder($type, $data, $options);
106
    }
107
}
108