Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\VarDumper\Cloner; Chris@0: Chris@0: /** Chris@0: * Represents the main properties of a PHP variable. Chris@0: * Chris@0: * @author Nicolas Grekas
Chris@0: */ Chris@17: class Stub Chris@0: { Chris@0: const TYPE_REF = 1; Chris@0: const TYPE_STRING = 2; Chris@0: const TYPE_ARRAY = 3; Chris@0: const TYPE_OBJECT = 4; Chris@0: const TYPE_RESOURCE = 5; Chris@0: Chris@0: const STRING_BINARY = 1; Chris@0: const STRING_UTF8 = 2; Chris@0: Chris@0: const ARRAY_ASSOC = 1; Chris@0: const ARRAY_INDEXED = 2; Chris@0: Chris@0: public $type = self::TYPE_REF; Chris@0: public $class = ''; Chris@0: public $value; Chris@0: public $cut = 0; Chris@0: public $handle = 0; Chris@0: public $refCount = 0; Chris@0: public $position = 0; Chris@17: public $attr = []; Chris@0: Chris@18: private static $defaultProperties = []; Chris@18: Chris@0: /** Chris@0: * @internal Chris@0: */ Chris@17: public function __sleep() Chris@0: { Chris@18: $properties = []; Chris@17: Chris@18: if (!isset(self::$defaultProperties[$c = \get_class($this)])) { Chris@18: self::$defaultProperties[$c] = get_class_vars($c); Chris@0: Chris@18: foreach ((new \ReflectionClass($c))->getStaticProperties() as $k => $v) { Chris@18: unset(self::$defaultProperties[$c][$k]); Chris@18: } Chris@18: } Chris@18: Chris@18: foreach (self::$defaultProperties[$c] as $k => $v) { Chris@18: if ($this->$k !== $v) { Chris@18: $properties[] = $k; Chris@18: } Chris@18: } Chris@18: Chris@18: return $properties; Chris@0: } Chris@0: }