데이터베이스 이벤트

Database 클래스에는 데이터베이스 실행 중에 어떤 일이 일어나고 있는지 더 자세히 알기 위해 활용할 수 있는 몇 가지 이벤트 가 포함되어 있습니다. 이러한 이벤트는 분석 및 보고를 위해 데이터를 수집하는 데 사용할 수 있습니다. 디버그 도구 모음 은 이를 사용하여 도구 모음에 표시할 쿼리를 수집합니다.

이벤트

DBQuery

이 이벤트는 새로운 쿼리가 실행될 때마다 (성공 여부와 관계없이) 발생합니다. 유일한 매개변수는 현재 쿼리의 Query 인스턴스입니다.

이 기능을 사용하여 모든 쿼리를 STDOUT에 표시하거나, 파일에 로깅하거나, 심지어 자동 쿼리 분석 도구를 만들어 잠재적으로 누락된 인덱스, 느린 쿼리 등을 찾는 데 도움을 줄 수 있습니다.

모든 쿼리를 로깅하는 예제:

<?php

// In app/Config/Events.php

namespace Config;

use CodeIgniter\Events\Events;
use CodeIgniter\Exceptions\FrameworkException;
use CodeIgniter\HotReloader\HotReloader;

// ...

Events::on(
    'DBQuery',
    static function (\CodeIgniter\Database\Query $query) {
        log_message('info', (string) $query);
    },
);