0 follower

Final Class Yiisoft\Db\Debug\DatabaseCollector

InheritanceYiisoft\Db\Debug\DatabaseCollector
ImplementsYiisoft\Yii\Debug\Collector\SummaryCollectorInterface
Uses TraitsYiisoft\Yii\Debug\Collector\CollectorTrait

Constants

Hide inherited constants

Constant Value Description Defined By
ACTION_QUERY_END 'query.end' Yiisoft\Db\Debug\DatabaseCollector
ACTION_QUERY_ERROR 'query.error' Yiisoft\Db\Debug\DatabaseCollector
ACTION_QUERY_START 'query.start' Yiisoft\Db\Debug\DatabaseCollector
ACTION_TRANSACTION_COMMIT 'transaction.commit' Yiisoft\Db\Debug\DatabaseCollector
ACTION_TRANSACTION_ROLLBACK 'transaction.rollback' Yiisoft\Db\Debug\DatabaseCollector
ACTION_TRANSACTION_START 'transaction.start' Yiisoft\Db\Debug\DatabaseCollector
QUERY_STATUS_ERROR 'error' Yiisoft\Db\Debug\DatabaseCollector
QUERY_STATUS_INITIALIZED 'initialized' Yiisoft\Db\Debug\DatabaseCollector
QUERY_STATUS_SUCCESS 'success' Yiisoft\Db\Debug\DatabaseCollector
TRANSACTION_STATUS_COMMIT 'commit' Yiisoft\Db\Debug\DatabaseCollector
TRANSACTION_STATUS_ROLLBACK 'rollback' Yiisoft\Db\Debug\DatabaseCollector
TRANSACTION_STATUS_START 'start' Yiisoft\Db\Debug\DatabaseCollector

Method Details

Hide inherited methods

collectQueryEnd() public method

public void collectQueryEnd ( string $id, integer $rowsNumber )
$id string
$rowsNumber integer

                public function collectQueryEnd(
    string $id,
    int $rowsNumber,
): void {
    $this->queries[$id]['rowsNumber'] = $rowsNumber;
    $this->queries[$id]['status'] = self::QUERY_STATUS_SUCCESS;
    $this->queries[$id]['actions'][] = [
        'action' => self::ACTION_QUERY_END,
        'time' => microtime(true),
    ];
}

            
collectQueryError() public method

public void collectQueryError ( string $id, Throwable $exception )
$id string
$exception Throwable

                public function collectQueryError(
    string $id,
    Throwable $exception,
): void {
    $this->queries[$id]['exception'] = $exception;
    $this->queries[$id]['status'] = self::QUERY_STATUS_ERROR;
    $this->queries[$id]['actions'][] = [
        'action' => self::ACTION_QUERY_ERROR,
        'time' => microtime(true),
    ];
}

            
collectQueryStart() public method

public void collectQueryStart ( string $id, string $sql, string $rawSql, array $params, string $line )
$id string
$sql string
$rawSql string
$params array
$line string

                public function collectQueryStart(
    string $id,
    string $sql,
    string $rawSql,
    array $params,
    string $line,
): void {
    $this->queries[$id] = [
        'position' => $this->position++,
        'transactionId' => $this->currentTransactionId,
        'sql' => $sql,
        'rawSql' => $rawSql,
        'params' => $params,
        'line' => $line,
        'status' => self::QUERY_STATUS_INITIALIZED,
        'actions' => [
            [
                'action' => self::ACTION_QUERY_START,
                'time' => microtime(true),
            ],
        ],
    ];
}

            
collectTransactionCommit() public method

public void collectTransactionCommit ( string $line )
$line string

                public function collectTransactionCommit(
    string $line,
): void {
    $this->transactions[$this->currentTransactionId]['status'] = self::TRANSACTION_STATUS_COMMIT;
    $this->transactions[$this->currentTransactionId]['actions'][] = [
        'action' => self::ACTION_TRANSACTION_COMMIT,
        'line' => $line,
        'time' => microtime(true),
    ];
    ++$this->currentTransactionId;
}

            
collectTransactionRollback() public method

public void collectTransactionRollback ( string $line )
$line string

                public function collectTransactionRollback(
    string $line,
): void {
    $this->transactions[$this->currentTransactionId]['status'] = self::TRANSACTION_STATUS_ROLLBACK;
    $this->transactions[$this->currentTransactionId]['actions'][] = [
        'action' => self::ACTION_TRANSACTION_ROLLBACK,
        'line' => $line,
        'time' => microtime(true),
    ];
    ++$this->currentTransactionId;
}

            
collectTransactionStart() public method

public void collectTransactionStart ( string|null $isolationLevel, string $line )
$isolationLevel string|null
$line string

                public function collectTransactionStart(
    ?string $isolationLevel,
    string $line,
): void {
    $id = ++$this->currentTransactionId;
    $this->transactions[$id] = [
        'id' => $id,
        'position' => $this->position++,
        'status' => self::TRANSACTION_STATUS_START,
        'line' => $line,
        'level' => $isolationLevel,
        'actions' => [
            [
                'action' => self::ACTION_TRANSACTION_START,
                'time' => microtime(true),
            ],
        ],
    ];
}

            
getCollected() public method

public array getCollected ( )

                public function getCollected(): array
{
    $queries = array_values($this->queries);
    usort($queries, fn(array $a, array $b) => $a['position'] <=> $b['position']);
    return [
        'queries' => $this->queries,
        'transactions' => $this->transactions,
    ];
}

            
getSummary() public method

public array getSummary ( )

                public function getSummary(): array
{
    return [
        'queries' => [
            'error' => count(
                array_filter($this->queries, fn(array $query) => $query['status'] === self::QUERY_STATUS_ERROR),
            ),
            'total' => count($this->queries),
        ],
        'transactions' => [
            'error' => count(
                array_filter(
                    $this->transactions,
                    static fn(array $query) => $query['status'] === self::TRANSACTION_STATUS_ROLLBACK,
                ),
            ),
            'total' => count($this->transactions),
        ],
    ];
}