Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Symfony\Component\VarDumper\Cloner;
13
 
14
/**
15
 * Represents the main properties of a PHP variable.
16
 *
17
 * @author Nicolas Grekas <p@tchwork.com>
18
 */
19
class Stub
20
{
21
    public const TYPE_REF = 1;
22
    public const TYPE_STRING = 2;
23
    public const TYPE_ARRAY = 3;
24
    public const TYPE_OBJECT = 4;
25
    public const TYPE_RESOURCE = 5;
26
 
27
    public const STRING_BINARY = 1;
28
    public const STRING_UTF8 = 2;
29
 
30
    public const ARRAY_ASSOC = 1;
31
    public const ARRAY_INDEXED = 2;
32
 
33
    public $type = self::TYPE_REF;
34
    public $class = '';
35
    public $value;
36
    public $cut = 0;
37
    public $handle = 0;
38
    public $refCount = 0;
39
    public $position = 0;
40
    public $attr = [];
41
 
42
    private static array $defaultProperties = [];
43
 
44
    /**
45
     * @internal
46
     */
47
    public function __sleep(): array
48
    {
49
        $properties = [];
50
 
51
        if (!isset(self::$defaultProperties[$c = static::class])) {
52
            self::$defaultProperties[$c] = get_class_vars($c);
53
 
54
            foreach ((new \ReflectionClass($c))->getStaticProperties() as $k => $v) {
55
                unset(self::$defaultProperties[$c][$k]);
56
            }
57
        }
58
 
59
        foreach (self::$defaultProperties[$c] as $k => $v) {
60
            if ($this->$k !== $v) {
61
                $properties[] = $k;
62
            }
63
        }
64
 
65
        return $properties;
66
    }
67
}