Completed
Pull Request — master (#253)
by Pascale
03:33
created

ModifyViewHelper::initializeArguments()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * Modify a DateTime.
5
 */
6
declare(strict_types=1);
7
8
namespace HDNET\Calendarize\ViewHelpers\DateTime;
9
10
use HDNET\Calendarize\ViewHelpers\AbstractViewHelper;
11
12
/**
13
 * Modify a DateTime@.
14
 */
15
class ModifyViewHelper extends AbstractViewHelper
16
{
17
    public function initializeArguments()
18
    {
19
        parent::initializeArguments();
20
        $this->registerArgument('modification', 'string', 'DateTime Object Modification String', true, '');
21
        $this->registerArgument('dateTime', \DateTimeInterface::class, 'DateTime to modify', false, null);
22
    }
23
24
    /**
25
     * Modify the given datetime by the string modification.
26
     *
27
     * @return string
28
     */
29
    public function render()
30
    {
31
        $dateTime = $this->arguments['dateTime'];
32
33
        if ($dateTime === null) {
34
            $dateTime = $this->renderChildren();
35
        }
36
        if (! $dateTime instanceof \DateTimeInterface) {
37
            $dateTime = new \DateTime();
38
        }
39
40
        $clone = clone $dateTime;
41
42
        return $clone->modify($this->arguments['modification']);
43
    }
44
}
45