annotate vendor/symfony/var-dumper/Cloner/Stub.php @ 19:fa3358dc1485 tip

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