Вход Регистрация
Файл: vendor/nunomaduro/collision/src/ArgumentFormatter.php
Строк: 44
<?php

declare(strict_types=1);

namespace 
NunoMaduroCollision;

use 
NunoMaduroCollisionContractsArgumentFormatter as ArgumentFormatterContract;

/**
 * @internal
 *
 * @see TestsUnitArgumentFormatterTest
 */
final class ArgumentFormatter implements ArgumentFormatterContract
{
    private const 
MAX_STRING_LENGTH 1000;

    
/**
     * {@inheritdoc}
     */
    
public function format(array $argumentsbool $recursive true): string
    
{
        
$result = [];

        foreach (
$arguments as $argument) {
            switch (
true) {
                case 
is_string($argument):
                    
$result[] = '"'.(mb_strlen($argument) > self::MAX_STRING_LENGTH mb_substr($argument0self::MAX_STRING_LENGTH).'...' $argument).'"';
                    break;
                case 
is_array($argument):
                    
$associative array_keys($argument) !== range(0count($argument) - 1);
                    if (
$recursive && $associative && count($argument) <= 5) {
                        
$result[] = '['.$this->format($argumentfalse).']';
                    }
                    break;
                case 
is_object($argument):
                    
$class get_class($argument);
                    
$result[] = "Object($class)";
                    break;
            }
        }

        return 
implode(', '$result);
    }
}
Онлайн: 0
Реклама