HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/admin.javaapp.co.uk/vendor/spatie/laravel-ignition/src/Recorders/QueryRecorder/Query.php
<?php

namespace Spatie\LaravelIgnition\Recorders\QueryRecorder;

use Illuminate\Database\Events\QueryExecuted;

class Query
{
    protected string $sql;

    protected float $time;

    protected string $connectionName;

    /** @var array<string, string>|null */
    protected ?array $bindings;

    protected float $microtime;

    public static function fromQueryExecutedEvent(QueryExecuted $queryExecuted, bool $reportBindings = false): self
    {
        return new self(
            $queryExecuted->sql,
            $queryExecuted->time,
            /** @phpstan-ignore-next-line  */
            $queryExecuted->connectionName ?? '',
            $reportBindings ? $queryExecuted->bindings : null
        );
    }

    /**
     * @param string $sql
     * @param float $time
     * @param string $connectionName
     * @param array<string, string>|null $bindings
     * @param float|null $microtime
     */
    protected function __construct(
        string $sql,
        float $time,
        string $connectionName,
        ?array $bindings = null,
        ?float $microtime = null
    ) {
        $this->sql = $sql;
        $this->time = $time;
        $this->connectionName = $connectionName;
        $this->bindings = $bindings;
        $this->microtime = $microtime ?? microtime(true);
    }

    /**
     * @return array<string, mixed>
     */
    public function toArray(): array
    {
        return [
            'sql' => $this->sql,
            'time' => $this->time,
            'connection_name' => $this->connectionName,
            'bindings' => $this->bindings,
            'microtime' => $this->microtime,
        ];
    }
}