Completed
Push — master ( f96975...e289fc )
by Marco
9s
created

NonDeserialisableObject   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 0
dl 0
loc 29
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Dont\Exception;
6
7
use LogicException;
8
9
class NonDeserialisableObject extends LogicException implements ExceptionInterface
10
{
11
    private const ERROR_TEMPLATE = <<<'ERROR'
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_CONST, expecting T_FUNCTION
Loading history...
12
The given object %s#%s is not designed to be deserialised, yet deserialisation was attempted.
13
14
This error is raised because the author of %s didn't design it to be deserialisable, nor can
15
guarantee that it will function correctly after deserialisation, nor can guarantee that all
16
its internal components are deserialisable.
17
18
Please do not use unserialize() to produce %s instances.
19
ERROR;
20
21
    public static function fromAttemptedDeSerialisation($object) : self
22
    {
23
        if (! is_object($object)) {
24
            throw TypeError::fromNonObject($object);
25
        }
26
27
        $className = get_class($object);
28
29
        return new self(sprintf(
30
            self::ERROR_TEMPLATE,
31
            $className,
32
            spl_object_hash($object),
33
            $className,
34
            $className
35
        ));
36
    }
37
}
38