StringField   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 38
c 0
b 0
f 0
wmc 5
lcom 0
cbo 2
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A handles() 0 3 1
A inflate() 0 3 1
A render() 0 10 2
A headElements() 0 3 1
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
}