Вход Регистрация
Файл: vendor/spatie/flare-client-php/src/Truncation/ReportTrimmer.php
Строк: 43
<?php

namespace SpatieFlareClientTruncation;

class 
ReportTrimmer
{
    protected static 
int $maxPayloadSize 524288;

    
/** @var array<int, class-string<SpatieFlareClientTruncationTruncationStrategy>> */
    
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;
    }
}
Онлайн: 1
Реклама