Вход Регистрация
Файл: gapps/vendor/symfony/http-kernel/DataCollector/Util/ValueExporter.php
Строк: 79
<?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 SymfonyComponentHttpKernelDataCollectorUtil;

/**
 * @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 (
is_object($value)) {
            if (
$value instanceof DateTimeInterface) {
                return 
sprintf('Object(%s) - %s'get_class($value), $value->format(DateTime::ISO8601));
            }

            return 
sprintf('Object(%s)'get_class($value));
        }

        if (
$value instanceof __PHP_Incomplete_Class) {
            return 
sprintf('__PHP_Incomplete_Class(%s)'$this->getClassNameFromIncomplete($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%sn%s]"$indentimplode(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'];
    }
}
Онлайн: 0
Реклама