StringField::render()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 10
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
c 0
b 0
f 0
rs 9.4285
cc 2
eloc 8
nc 1
nop 2
1
<?php
2
namespace rtens\domin\delivery\web\fields;
3
4
use rtens\domin\Parameter;
5
use rtens\domin\delivery\web\Element;
6
use rtens\domin\delivery\web\WebField;
7
use watoki\reflect\type\StringType;
8
9
class StringField implements WebField {
10
11
    /**
12
     * @param \rtens\domin\Parameter $parameter
13
     * @return bool
14
     */
15
    public function handles(Parameter $parameter) {
16
        return $parameter->getType() instanceof StringType;
17
    }
18
19
    /**
20
     * @param Parameter $parameter
21
     * @param string $serialized
22
     * @return mixed
23
     */
24
    public function inflate(Parameter $parameter, $serialized) {
25
        return (string)$serialized;
26
    }
27
28
    public function render(Parameter $parameter, $value) {
29
        return (string)new Element('input', array_merge([
30
            'class' => 'form-control',
31
            'type' => 'text',
32
            'name' => $parameter->getName(),
33
            'value' => $value
34
        ], $parameter->isRequired() ? [
35
            'required' => 'required'
36
        ] : []));
37
    }
38
39
    /**
40
     * @param Parameter $parameter
41
     * @return array|\rtens\domin\delivery\web\Element[]
42
     */
43
    public function headElements(Parameter $parameter) {
44
        return [];
45
    }
46
}