Passed
Pull Request — master (#244)
by Sergei
02:56
created

Field::getFactory()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 16
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 7
c 1
b 0
f 0
nc 3
nop 1
dl 0
loc 16
ccs 9
cts 9
cp 1
crap 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Form;
6
7
use Yiisoft\Form\Field\Button;
8
use Yiisoft\Form\Field\ButtonGroup;
9
use Yiisoft\Form\Field\Checkbox;
10
use Yiisoft\Form\Field\CheckboxList;
11
use Yiisoft\Form\Field\Date;
12
use Yiisoft\Form\Field\DateTime;
13
use Yiisoft\Form\Field\DateTimeLocal;
14
use Yiisoft\Form\Field\Email;
15
use Yiisoft\Form\Field\ErrorSummary;
16
use Yiisoft\Form\Field\Fieldset;
17
use Yiisoft\Form\Field\File;
18
use Yiisoft\Form\Field\Hidden;
19
use Yiisoft\Form\Field\Image;
20
use Yiisoft\Form\Field\Number;
21
use Yiisoft\Form\Field\Part\Error;
22
use Yiisoft\Form\Field\Part\Hint;
23
use Yiisoft\Form\Field\Part\Label;
24
use Yiisoft\Form\Field\Password;
25
use Yiisoft\Form\Field\RadioList;
26
use Yiisoft\Form\Field\Range;
27
use Yiisoft\Form\Field\ResetButton;
28
use Yiisoft\Form\Field\Select;
29
use Yiisoft\Form\Field\SubmitButton;
30
use Yiisoft\Form\Field\Telephone;
31
use Yiisoft\Form\Field\Text;
32
use Yiisoft\Form\Field\Textarea;
33
use Yiisoft\Form\Field\Url;
34
35
class Field
36
{
37 1
    final public static function button(?string $content = null, array $config = []): Button
38
    {
39 1
        $field = Button::widget($config);
40
41 1
        if ($content !== null) {
42 1
            $field = $field->content($content);
0 ignored issues
show
Bug introduced by
The method content() does not exist on Yiisoft\Widget\Widget. It seems like you code against a sub-type of Yiisoft\Widget\Widget such as Yiisoft\Form\Field\Part\Label or Yiisoft\Form\Field\Part\Hint or Yiisoft\Form\Field\Fieldset or Yiisoft\Form\Field\Base\ButtonField. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

42
            /** @scrutinizer ignore-call */ 
43
            $field = $field->content($content);
Loading history...
43
        }
44
45 1
        return $field;
46
    }
47
48 1
    final public static function buttonGroup(array $config = []): ButtonGroup
49
    {
50 1
        return ButtonGroup::widget(config: $config);
0 ignored issues
show
Bug Best Practice introduced by
The expression return Yiisoft\Form\Fiel...nGroup::widget($config) returns the type Yiisoft\Widget\Widget which includes types incompatible with the type-hinted return Yiisoft\Form\Field\ButtonGroup.
Loading history...
51
    }
52
53 1
    final public static function checkbox(
54
        FormModelInterface $formModel,
55
        string $attribute,
56
        array $config = []
57
    ): Checkbox {
58 1
        return Checkbox::widget(config: $config)->formAttribute($formModel, $attribute);
0 ignored issues
show
Bug introduced by
The method formAttribute() does not exist on Yiisoft\Widget\Widget. It seems like you code against a sub-type of Yiisoft\Widget\Widget such as Yiisoft\Form\Field\Part\Label or Yiisoft\Form\Field\Part\Error or Yiisoft\Form\Field\Part\Hint or Yiisoft\Form\Field\RadioList or Yiisoft\Form\Field\Base\InputField or Yiisoft\Form\Field\CheckboxList. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

58
        return Checkbox::widget(config: $config)->/** @scrutinizer ignore-call */ formAttribute($formModel, $attribute);
Loading history...
59
    }
60
61 1
    final public static function checkboxList(
62
        FormModelInterface $formModel,
63
        string $attribute,
64
        array $config = []
65
    ): CheckboxList {
66 1
        return CheckboxList::widget(config: $config)->formAttribute($formModel, $attribute);
67
    }
68
69 1
    final public static function date(FormModelInterface $formModel, string $attribute, array $config = []): Date
70
    {
71 1
        return Date::widget(config: $config)->formAttribute($formModel, $attribute);
72
    }
73
74 1
    final public static function dateTime(
75
        FormModelInterface $formModel,
76
        string $attribute,
77
        array $config = []
78
    ): DateTime {
79 1
        return DateTime::widget(config: $config)->formAttribute($formModel, $attribute);
80
    }
81
82 1
    final public static function dateTimeLocal(
83
        FormModelInterface $formModel,
84
        string $attribute,
85
        array $config = []
86
    ): DateTimeLocal {
87 1
        return DateTimeLocal::widget(config: $config)->formAttribute($formModel, $attribute);
88
    }
89
90 1
    final public static function email(FormModelInterface $formModel, string $attribute, array $config = []): Email
91
    {
92 1
        return Email::widget(config: $config)->formAttribute($formModel, $attribute);
93
    }
94
95 3
    final public static function errorSummary(FormModelInterface $formModel, array $config = []): ErrorSummary
96
    {
97 3
        return ErrorSummary::widget(config: $config)->formModel($formModel);
0 ignored issues
show
Bug introduced by
The method formModel() does not exist on Yiisoft\Widget\Widget. It seems like you code against a sub-type of Yiisoft\Widget\Widget such as Yiisoft\Form\Field\ErrorSummary. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

97
        return ErrorSummary::widget(config: $config)->/** @scrutinizer ignore-call */ formModel($formModel);
Loading history...
98
    }
99
100 2
    final public static function fieldset(array $config = []): Fieldset
101
    {
102 2
        return Fieldset::widget(config: $config);
0 ignored issues
show
Bug Best Practice introduced by
The expression return Yiisoft\Form\Fiel...eldset::widget($config) returns the type Yiisoft\Widget\Widget which includes types incompatible with the type-hinted return Yiisoft\Form\Field\Fieldset.
Loading history...
103
    }
104
105 1
    final public static function file(FormModelInterface $formModel, string $attribute, array $config = []): File
106
    {
107 1
        return File::widget(config: $config)->formAttribute($formModel, $attribute);
108
    }
109
110 2
    final public static function hidden(FormModelInterface $formModel, string $attribute, array $config = []): Hidden
111
    {
112 2
        return Hidden::widget(config: $config)->formAttribute($formModel, $attribute);
113
    }
114
115 1
    final public static function image(array $config = []): Image
116
    {
117 1
        return Image::widget(config: $config);
0 ignored issues
show
Bug Best Practice introduced by
The expression return Yiisoft\Form\Field\Image::widget($config) returns the type Yiisoft\Widget\Widget which includes types incompatible with the type-hinted return Yiisoft\Form\Field\Image.
Loading history...
118
    }
119
120 1
    final public static function number(FormModelInterface $formModel, string $attribute, array $config = []): Number
121
    {
122 1
        return Number::widget(config: $config)->formAttribute($formModel, $attribute);
123
    }
124
125 1
    final public static function password(
126
        FormModelInterface $formModel,
127
        string $attribute,
128
        array $config = []
129
    ): Password {
130 1
        return Password::widget(config: $config)->formAttribute($formModel, $attribute);
131
    }
132
133 1
    final public static function radioList(
134
        FormModelInterface $formModel,
135
        string $attribute,
136
        array $config = []
137
    ): RadioList {
138 1
        return RadioList::widget(config: $config)->formAttribute($formModel, $attribute);
139
    }
140
141 1
    final public static function range(FormModelInterface $formModel, string $attribute, array $config = []): Range
142
    {
143 1
        return Range::widget(config: $config)->formAttribute($formModel, $attribute);
144
    }
145
146 1
    final public static function resetButton(?string $content = null, array $config = []): ResetButton
147
    {
148 1
        $field = ResetButton::widget(config: $config);
149
150 1
        if ($content !== null) {
151 1
            $field = $field->content($content);
152
        }
153
154 1
        return $field;
155
    }
156
157 1
    final public static function select(FormModelInterface $formModel, string $attribute, array $config = []): Select
158
    {
159 1
        return Select::widget(config: $config)->formAttribute($formModel, $attribute);
160
    }
161
162 1
    final public static function submitButton(?string $content = null, array $config = []): SubmitButton
163
    {
164 1
        $field = SubmitButton::widget(config: $config);
165
166 1
        if ($content !== null) {
167 1
            $field = $field->content($content);
168
        }
169
170 1
        return $field;
171
    }
172
173 1
    final public static function telephone(
174
        FormModelInterface $formModel,
175
        string $attribute,
176
        array $config = []
177
    ): Telephone {
178 1
        return Telephone::widget(config: $config)->formAttribute($formModel, $attribute);
179
    }
180
181 3
    final public static function text(FormModelInterface $formModel, string $attribute, array $config = []): Text
182
    {
183 3
        return Text::widget(config: $config)->formAttribute($formModel, $attribute);
184
    }
185
186 1
    final public static function textarea(
187
        FormModelInterface $formModel,
188
        string $attribute,
189
        array $config = []
190
    ): Textarea {
191 1
        return Textarea::widget(config: $config)->formAttribute($formModel, $attribute);
192
    }
193
194 1
    final public static function url(FormModelInterface $formModel, string $attribute, array $config = []): Url
195
    {
196 1
        return Url::widget(config: $config)->formAttribute($formModel, $attribute);
197
    }
198
199 1
    final public static function label(FormModelInterface $formModel, string $attribute, array $config = []): Label
200
    {
201 1
        return Label::widget(config: $config)->formAttribute($formModel, $attribute);
202
    }
203
204 6
    final public static function hint(FormModelInterface $formModel, string $attribute, array $config = []): Hint
205
    {
206 6
        return Hint::widget(config: $config)->formAttribute($formModel, $attribute);
207
    }
208
209 6
    final public static function error(FormModelInterface $formModel, string $attribute, array $config = []): Error
210
    {
211 6
        return Error::widget(config: $config)->formAttribute($formModel, $attribute);
212
    }
213
}
214