PHP 8.2.30
Preview: Api.php Size: 1.82 KB
/proc/thread-self/root/home/byroehnu/easetack.com/vendor/spatie/flare-client-php/src/Api.php

<?php

namespace Spatie\FlareClient;

use Exception;
use Spatie\FlareClient\Http\Client;
use Spatie\FlareClient\Truncation\ReportTrimmer;

class Api
{
    protected Client $client;

    protected bool $sendReportsImmediately = false;

    /** @var array<int, Report> */
    protected array $queue = [];

    public function __construct(Client $client)
    {
        $this->client = $client;

        register_shutdown_function([$this, 'sendQueuedReports']);
    }

    public function sendReportsImmediately(): self
    {
        $this->sendReportsImmediately = true;

        return $this;
    }

    public function report(Report $report): void
    {
        try {
            $this->sendReportsImmediately
                ? $this->sendReportToApi($report)
                : $this->addReportToQueue($report);
        } catch (Exception $e) {
            //
        }
    }

    public function sendTestReport(Report $report): self
    {
        $this->sendReportToApi($report);

        return $this;
    }

    protected function addReportToQueue(Report $report): self
    {
        $this->queue[] = $report;

        return $this;
    }

    public function sendQueuedReports(): void
    {
        try {
            foreach ($this->queue as $report) {
                $this->sendReportToApi($report);
            }
        } catch (Exception $e) {
            //
        } finally {
            $this->queue = [];
        }
    }

    protected function sendReportToApi(Report $report): void
    {
        $payload = $this->truncateReport($report->toArray());

        $this->client->post('reports', $payload);
    }

    /**
     * @param array<int|string, mixed> $payload
     *
     * @return array<int|string, mixed>
     */
    protected function truncateReport(array $payload): array
    {
        return (new ReportTrimmer())->trim($payload);
    }
}

Directory Contents

Dirs: 11 × Files: 6

Name Size Perms Modified Actions
Concerns DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Context DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Contracts DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Enums DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Glows DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Http DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Solutions DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Support DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
Time DIR
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
- drwxrwxrwx 2025-05-16 16:14:51
Edit Download
1.82 KB lrw-rw-rw- 2025-02-14 13:42:06
Edit Download
12.95 KB lrw-rw-rw- 2025-02-14 13:42:06
Edit Download
753 B lrw-rw-rw- 2025-02-14 13:42:06
Edit Download
678 B lrw-rw-rw- 2025-02-14 13:42:06
Edit Download
11.77 KB lrw-rw-rw- 2025-02-14 13:42:06
Edit Download
1.41 KB lrw-rw-rw- 2025-02-14 13:42:06
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).