X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fpsy%2Fpsysh%2Fsrc%2FPsy%2FVarDumper%2FDumper.php;fp=vendor%2Fpsy%2Fpsysh%2Fsrc%2FPsy%2FVarDumper%2FDumper.php;h=6e166af5679e56dd37d64ebe7caa5b267072597a;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/vendor/psy/psysh/src/Psy/VarDumper/Dumper.php b/vendor/psy/psysh/src/Psy/VarDumper/Dumper.php new file mode 100644 index 000000000..6e166af56 --- /dev/null +++ b/vendor/psy/psysh/src/Psy/VarDumper/Dumper.php @@ -0,0 +1,107 @@ + '\0', + "\t" => '\t', + "\n" => '\n', + "\v" => '\v', + "\f" => '\f', + "\r" => '\r', + "\033" => '\e', + ); + + public function __construct(OutputFormatter $formatter) + { + $this->formatter = $formatter; + parent::__construct(); + $this->setColors(false); + } + + /** + * {@inheritdoc} + */ + public function enterHash(Cursor $cursor, $type, $class, $hasChild) + { + if (Cursor::HASH_INDEXED === $type || Cursor::HASH_ASSOC === $type) { + $class = 0; + } + parent::enterHash($cursor, $type, $class, $hasChild); + } + + /** + * {@inheritdoc} + */ + protected function dumpKey(Cursor $cursor) + { + if (Cursor::HASH_INDEXED !== $cursor->hashType) { + parent::dumpKey($cursor); + } + } + + protected function style($style, $value, $attr = array()) + { + if ('ref' === $style) { + $value = strtr($value, '@', '#'); + } + + $styled = ''; + $map = self::$controlCharsMap; + $cchr = $this->styles['cchr']; + + $chunks = preg_split(self::$controlCharsRx, $value, null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); + foreach ($chunks as $chunk) { + if (preg_match(self::$onlyControlCharsRx, $chunk)) { + $chars = ''; + $i = 0; + do { + $chars .= isset($map[$chunk[$i]]) ? $map[$chunk[$i]] : sprintf('\x%02X', ord($chunk[$i])); + } while (isset($chunk[++$i])); + + $chars = $this->formatter->escape($chars); + $styled .= "<{$cchr}>{$chars}"; + } else { + $styled .= $this->formatter->escape($chunk); + } + } + + $style = $this->styles[$style]; + + return "<{$style}>{$styled}"; + } + + /** + * {@inheritdoc} + */ + protected function dumpLine($depth, $endOfValue = false) + { + if ($endOfValue && 0 < $depth) { + $this->line .= ','; + } + $this->line = $this->formatter->format($this->line); + parent::dumpLine($depth, $endOfValue); + } +}