| Server IP : 138.197.107.151 / Your IP : 216.73.217.7 Web Server : Apache/2.4.58 (Ubuntu) System : Linux BloxBy-Builder 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 User : wpbetasites_mrakzqskir ( 1022) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/shark-admin/vendor/spatie/flare-client-php/src/ |
Upload File : |
<?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);
}
}