InvalidValueForValueObjectException::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
nc 1
nop 2
dl 0
loc 8
rs 10
c 1
b 0
f 0
1
<?php
2
namespace W2w\Lib\Apie\Exceptions;
3
4
use ReflectionClass;
5
use W2w\Lib\ApieObjectAccessNormalizer\Exceptions\ApieException;
6
use W2w\Lib\ApieObjectAccessNormalizer\Exceptions\LocalizationableException;
7
use W2w\Lib\ApieObjectAccessNormalizer\Exceptions\LocalizationInfo;
8
9
class InvalidValueForValueObjectException extends ApieException implements LocalizationableException
10
{
11
    /**
12
     * @var string
13
     */
14
    private $name;
15
16
    /**
17
     * @var mixed
18
     */
19
    private $value;
20
21
    public function __construct($value, $valueObject)
22
    {
23
        $refl = new ReflectionClass($valueObject);
24
        $this->name = strtolower((string) preg_replace('/(?<!^)[A-Z]/', '_$0', $refl->getShortName()));
25
        $this->value = $value;
26
        parent::__construct(
27
            422,
28
            '"' . $value . '" is not a valid value for value object ' . $this->name
29
        );
30
    }
31
32
    public function getI18n(): LocalizationInfo
33
    {
34
        return new LocalizationInfo(
35
            'validation.format',
36
            [
37
                'name' => $this->name,
38
                'value' => $this->value,
39
            ]
40
        );
41
    }
42
}
43