annotate vendor/symfony/var-dumper/Caster/StubCaster.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
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\Caster;
Chris@0 13
Chris@0 14 use Symfony\Component\VarDumper\Cloner\Stub;
Chris@0 15
Chris@0 16 /**
Chris@0 17 * Casts a caster's Stub.
Chris@0 18 *
Chris@0 19 * @author Nicolas Grekas <p@tchwork.com>
Chris@0 20 */
Chris@0 21 class StubCaster
Chris@0 22 {
Chris@0 23 public static function castStub(Stub $c, array $a, Stub $stub, $isNested)
Chris@0 24 {
Chris@0 25 if ($isNested) {
Chris@0 26 $stub->type = $c->type;
Chris@0 27 $stub->class = $c->class;
Chris@0 28 $stub->value = $c->value;
Chris@0 29 $stub->handle = $c->handle;
Chris@0 30 $stub->cut = $c->cut;
Chris@0 31 $stub->attr = $c->attr;
Chris@0 32
Chris@17 33 if (Stub::TYPE_REF === $c->type && !$c->class && \is_string($c->value) && !preg_match('//u', $c->value)) {
Chris@0 34 $stub->type = Stub::TYPE_STRING;
Chris@0 35 $stub->class = Stub::STRING_BINARY;
Chris@0 36 }
Chris@0 37
Chris@17 38 $a = [];
Chris@0 39 }
Chris@0 40
Chris@0 41 return $a;
Chris@0 42 }
Chris@0 43
Chris@0 44 public static function castCutArray(CutArrayStub $c, array $a, Stub $stub, $isNested)
Chris@0 45 {
Chris@0 46 return $isNested ? $c->preservedSubset : $a;
Chris@0 47 }
Chris@0 48
Chris@0 49 public static function cutInternals($obj, array $a, Stub $stub, $isNested)
Chris@0 50 {
Chris@0 51 if ($isNested) {
Chris@17 52 $stub->cut += \count($a);
Chris@0 53
Chris@17 54 return [];
Chris@0 55 }
Chris@0 56
Chris@0 57 return $a;
Chris@0 58 }
Chris@0 59
Chris@0 60 public static function castEnum(EnumStub $c, array $a, Stub $stub, $isNested)
Chris@0 61 {
Chris@0 62 if ($isNested) {
Chris@0 63 $stub->class = $c->dumpKeys ? '' : null;
Chris@0 64 $stub->handle = 0;
Chris@0 65 $stub->value = null;
Chris@0 66 $stub->cut = $c->cut;
Chris@0 67 $stub->attr = $c->attr;
Chris@0 68
Chris@17 69 $a = [];
Chris@0 70
Chris@0 71 if ($c->value) {
Chris@0 72 foreach (array_keys($c->value) as $k) {
Chris@0 73 $keys[] = !isset($k[0]) || "\0" !== $k[0] ? Caster::PREFIX_VIRTUAL.$k : $k;
Chris@0 74 }
Chris@0 75 // Preserve references with array_combine()
Chris@0 76 $a = array_combine($keys, $c->value);
Chris@0 77 }
Chris@0 78 }
Chris@0 79
Chris@0 80 return $a;
Chris@0 81 }
Chris@0 82 }