Upgrade framework
This commit is contained in:
52
vendor/spatie/flare-client-php/src/Truncation/ReportTrimmer.php
vendored
Normal file
52
vendor/spatie/flare-client-php/src/Truncation/ReportTrimmer.php
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Spatie\FlareClient\Truncation;
|
||||
|
||||
class ReportTrimmer
|
||||
{
|
||||
protected static int $maxPayloadSize = 524288;
|
||||
|
||||
/** @var array<int, class-string<\Spatie\FlareClient\Truncation\TruncationStrategy>> */
|
||||
protected array $strategies = [
|
||||
TrimStringsStrategy::class,
|
||||
TrimContextItemsStrategy::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* @param array<int|string, mixed> $payload
|
||||
*
|
||||
* @return array<int|string, mixed>
|
||||
*/
|
||||
public function trim(array $payload): array
|
||||
{
|
||||
foreach ($this->strategies as $strategy) {
|
||||
if (! $this->needsToBeTrimmed($payload)) {
|
||||
break;
|
||||
}
|
||||
|
||||
$payload = (new $strategy($this))->execute($payload);
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<int|string, mixed> $payload
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function needsToBeTrimmed(array $payload): bool
|
||||
{
|
||||
return strlen((string)json_encode($payload)) > self::getMaxPayloadSize();
|
||||
}
|
||||
|
||||
public static function getMaxPayloadSize(): int
|
||||
{
|
||||
return self::$maxPayloadSize;
|
||||
}
|
||||
|
||||
public static function setMaxPayloadSize(int $maxPayloadSize): void
|
||||
{
|
||||
self::$maxPayloadSize = $maxPayloadSize;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user