1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\HttpKernel\DataCollector\Util;
- /**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
- class ValueExporter
- {
- /**
- * Converts a PHP value to a string.
- *
- * @param mixed $value The PHP value
- * @param int $depth Only for internal usage
- * @param bool $deep Only for internal usage
- *
- * @return string The string representation of the given value
- */
- public function exportValue($value, $depth = 1, $deep = false)
- {
- if ($value instanceof \__PHP_Incomplete_Class) {
- return sprintf('__PHP_Incomplete_Class(%s)', $this->getClassNameFromIncomplete($value));
- }
- if (\is_object($value)) {
- if ($value instanceof \DateTime || $value instanceof \DateTimeInterface) {
- return sprintf('Object(%s) - %s', \get_class($value), $value->format(\DateTime::ATOM));
- }
- return sprintf('Object(%s)', \get_class($value));
- }
- if (\is_array($value)) {
- if (empty($value)) {
- return '[]';
- }
- $indent = str_repeat(' ', $depth);
- $a = array();
- foreach ($value as $k => $v) {
- if (\is_array($v)) {
- $deep = true;
- }
- $a[] = sprintf('%s => %s', $k, $this->exportValue($v, $depth + 1, $deep));
- }
- if ($deep) {
- return sprintf("[\n%s%s\n%s]", $indent, implode(sprintf(", \n%s", $indent), $a), str_repeat(' ', $depth - 1));
- }
- return sprintf('[%s]', implode(', ', $a));
- }
- if (\is_resource($value)) {
- return sprintf('Resource(%s#%d)', get_resource_type($value), $value);
- }
- if (null === $value) {
- return 'null';
- }
- if (false === $value) {
- return 'false';
- }
- if (true === $value) {
- return 'true';
- }
- return (string) $value;
- }
- private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $value)
- {
- $array = new \ArrayObject($value);
- return $array['__PHP_Incomplete_Class_Name'];
- }
- }
|