Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
6 / 6
CRAP
100.00% covered (success)
100.00%
1 / 1
Section
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
6 / 6
6
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 prepend
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 append
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 empty
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setValue
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Celemas\Boiler;
6
7/** @internal */
8final class Section
9{
10    /** @var list<string> */
11    private array $prepended = [];
12
13    /** @var list<string> */
14    private array $appended = [];
15
16    public function __construct(
17        private string $value,
18    ) {}
19
20    public function prepend(string $content): self
21    {
22        $this->prepended[] = $content;
23
24        return $this;
25    }
26
27    public function append(string $content): self
28    {
29        array_unshift($this->appended, $content);
30
31        return $this;
32    }
33
34    public function empty(): bool
35    {
36        return $this->value === '';
37    }
38
39    public function get(): string
40    {
41        return implode('', array_merge($this->prepended, [$this->value], $this->appended));
42    }
43
44    public function setValue(string $value): void
45    {
46        $this->value = $value;
47    }
48}