rector/vendor/tracy/tracy/src/Tracy/Dumper/Value.php

52 lines
1.4 KiB
PHP

<?php
/**
* This file is part of the Tracy (https://tracy.nette.org)
* Copyright (c) 2004 David Grudl (https://davidgrudl.com)
*/
declare (strict_types=1);
namespace RectorPrefix202302\Tracy\Dumper;
/**
* @internal
*/
final class Value implements \JsonSerializable
{
public const TypeArray = 'array', TypeBinaryHtml = 'bin', TypeNumber = 'number', TypeObject = 'object', TypeRef = 'ref', TypeResource = 'resource', TypeStringHtml = 'string', TypeText = 'text';
public const PropertyPublic = 0, PropertyProtected = 1, PropertyPrivate = 2, PropertyDynamic = 3, PropertyVirtual = 4;
/** @var string */
public $type;
/** @var string|int */
public $value;
/** @var ?int */
public $length;
/** @var ?int */
public $depth;
/** @var int|string */
public $id;
/** @var object */
public $holder;
/** @var ?array */
public $items;
/** @var ?\stdClass */
public $editor;
/** @var ?bool */
public $collapsed;
public function __construct(string $type, $value = null, ?int $length = null)
{
$this->type = $type;
$this->value = $value;
$this->length = $length;
}
public function jsonSerialize() : array
{
$res = [$this->type => $this->value];
foreach (['length', 'editor', 'items', 'collapsed'] as $k) {
if ($this->{$k} !== null) {
$res[$k] = $this->{$k};
}
}
return $res;
}
}