Upgrade framework
This commit is contained in:
45
vendor/nunomaduro/collision/src/ArgumentFormatter.php
vendored
Normal file
45
vendor/nunomaduro/collision/src/ArgumentFormatter.php
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace NunoMaduro\Collision;
|
||||
|
||||
use NunoMaduro\Collision\Contracts\ArgumentFormatter as ArgumentFormatterContract;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @see \Tests\Unit\ArgumentFormatterTest
|
||||
*/
|
||||
final class ArgumentFormatter implements ArgumentFormatterContract
|
||||
{
|
||||
private const MAX_STRING_LENGTH = 1000;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function format(array $arguments, bool $recursive = true): string
|
||||
{
|
||||
$result = [];
|
||||
|
||||
foreach ($arguments as $argument) {
|
||||
switch (true) {
|
||||
case is_string($argument):
|
||||
$result[] = '"'.(mb_strlen($argument) > self::MAX_STRING_LENGTH ? mb_substr($argument, 0, self::MAX_STRING_LENGTH).'...' : $argument).'"';
|
||||
break;
|
||||
case is_array($argument):
|
||||
$associative = array_keys($argument) !== range(0, count($argument) - 1);
|
||||
if ($recursive && $associative && count($argument) <= 5) {
|
||||
$result[] = '['.$this->format($argument, false).']';
|
||||
}
|
||||
break;
|
||||
case is_object($argument):
|
||||
$class = get_class($argument);
|
||||
$result[] = "Object($class)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return implode(', ', $result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user