Completed
Pull Request — master (#1)
by Derek Stephen
02:21
created

SelectRender::renderFieldBlock()   A

Complexity

Conditions 4
Paths 5

Size

Total Lines 18
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 4.0582

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 18
ccs 11
cts 13
cp 0.8462
rs 9.2
c 1
b 0
f 0
cc 4
eloc 13
nc 5
nop 5
crap 4.0582
1
<?php
2
/**
3
 * User: delboy1978uk
4
 * Date: 04/12/2016
5
 * Time: 22:33
6
 */
7
8
namespace Del\Form\Renderer\Field;
9
10
use Del\Form\Field\FieldInterface;
11
use Del\Form\Field\Select;
12
use DOMElement;
13
use InvalidArgumentException;
14
15
class SelectRender extends AbstractFieldRender implements FieldRendererInterface
16
{
17
    /**
18
     * @param FieldInterface $field
19
     * @param DOMElement $fieldBlock
20
     * @param DOMElement $labelBlock
21
     * @param DOMElement $element
22
     * @param DOMElement|null $errorBlock
23
     */
24 1
    public function renderFieldBlock(FieldInterface $field, DOMElement $fieldBlock, DOMElement $labelBlock, DOMElement $element, DOMElement $errorBlock = null)
25
    {
26 1
        if (!$field instanceof Select) {
27
            throw new InvalidArgumentException('Must be a Del\Form\Field\Select');
28
        }
29 1
        foreach ($field->getOptions() as $value => $label) {
30 1
            $option = $this->dom->createElement('option');
31 1
            $option->setAttribute('value', $value);
32 1
            $option->textContent = $label;
33 1
            $element->appendChild($option);
34
        }
35 1
        $fieldBlock->appendChild($labelBlock);
36 1
        $fieldBlock->appendChild($element);
37 1
        if ($errorBlock) {
38
            $fieldBlock->appendChild($errorBlock);
39
        }
40 1
        return $fieldBlock;
41
    }
42
}