Document::add()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace RoyallTheFourth\HtmlDocument;
4
5
use RoyallTheFourth\HtmlDocument\Element\ElementInterface;
6
use RoyallTheFourth\HtmlDocument\Set\ElementSet;
7
8
final class Document implements RenderInterface
9
{
10
    private $elements;
11
12
    public function __construct(ElementSet $elements = null)
13
    {
14
        $this->elements = $elements ?? new ElementSet();
15
    }
16
17
    public function add(ElementInterface $element): Document
18
    {
19
        return new Document($this->elements->add($element));
20
    }
21
22
    public function render(): string
23
    {
24
        $output = $this->elements->render();
25
26
        return "<!DOCTYPE html>\n{$output}";
27
    }
28
}
29