Final Class Yiisoft\Db\Debug\DatabaseCollector
| Inheritance | Yiisoft\Db\Debug\DatabaseCollector |
|---|---|
| Implements | Yiisoft\Yii\Debug\Collector\SummaryCollectorInterface |
| Uses Traits | Yiisoft\Yii\Debug\Collector\CollectorTrait |
Public Methods
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
| 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),
];
}
| 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),
];
}
| 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),
],
],
];
}
| 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;
}
| 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;
}
| 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),
],
],
];
}
| 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,
];
}
| 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),
],
];
}
Signup or Login in order to comment.