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

namespace SpatieFlareClientTruncation;

class 
TrimContextItemsStrategy extends AbstractTruncationStrategy
{
    
/**
     * @return array<int, int>
     */
    
public static function thresholds(): array
    {
        return [
100502510];
    }

    
/**
     * @param array<int|string, mixed> $payload
     *
     * @return array<int|string, mixed>
     */
    
public function execute(array $payload): array
    {
        foreach (static::
thresholds() as $threshold) {
            if (! 
$this->reportTrimmer->needsToBeTrimmed($payload)) {
                break;
            }

            
$payload['context'] = $this->iterateContextItems($payload['context'], $threshold);
        }

        return 
$payload;
    }

    
/**
     * @param array<int|string, mixed> $contextItems
     * @param int $threshold
     *
     * @return array<int|string, mixed>
     */
    
protected function iterateContextItems(array $contextItemsint $threshold): array
    {
        
array_walk($contextItems, [$this'trimContextItems'], $threshold);

        return 
$contextItems;
    }

    protected function 
trimContextItems(mixed &$valuemixed $keyint $threshold): mixed
    
{
        if (
is_array($value)) {
            if (
count($value) > $threshold) {
                
$value array_slice($value$threshold * -1$threshold);
            }

            
array_walk($value, [$this'trimContextItems'], $threshold);
        }

        return 
$value;
    }
}
Онлайн: 1
Реклама