<?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); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Concerns | Folder | 0755 |
|
|
Context | Folder | 0755 |
|
|
Contracts | Folder | 0755 |
|
|
Enums | Folder | 0755 |
|
|
FlareMiddleware | Folder | 0755 |
|
|
Glows | Folder | 0755 |
|
|
Http | Folder | 0755 |
|
|
Solutions | Folder | 0755 |
|
|
Time | Folder | 0755 |
|
|
Truncation | Folder | 0755 |
|
|
Api.php | File | 1.82 KB | 0644 |
|
Flare.php | File | 10.98 KB | 0644 |
|
Frame.php | File | 735 B | 0644 |
|
Report.php | File | 8.95 KB | 0644 |
|
View.php | File | 1.41 KB | 0644 |
|
helpers.php | File | 678 B | 0644 |
|