for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Facade\FlareClient;
use Facade\FlareClient\Http\Client;
use Facade\FlareClient\Truncation\ReportTrimmer;
class Api
{
/** @var \Facade\FlareClient\Http\Client */
private $client;
/** @var bool */
public static $sendInBatches = true;
/** @var array */
private $queue = [];
public function __construct(Client $client)
$this->client = $client;
register_shutdown_function([$this, 'sendQueuedReports']);
}
public static function sendReportsInBatches(bool $batchSending = true)
static::$sendInBatches = $batchSending;
public function report(Report $report)
try {
if (static::$sendInBatches) {
$this->addReportToQueue($report);
} else {
$this->sendReportToApi($report);
} catch (\Exception $e) {
//
public function sendTestReport(Report $report)
private function addReportToQueue(Report $report)
$this->queue[] = $report;
public function sendQueuedReports()
foreach ($this->queue as $report) {
} finally {
$this->queue = [];
private function sendReportToApi(Report $report)
$this->client->post('reports', $this->truncateReport($report->toArray()));
private function truncateReport(array $payload): array
return (new ReportTrimmer())->trim($payload);