データベースイベント

データベースクラスには、データベース実行中に何が起こっているかをより詳しく知るために利用できるいくつかのイベントが含まれています。これらのイベントは、分析およびレポート用のデータを収集するために使用できます。デバッグツールバーは、これを使用してツールバーに表示するクエリを収集します。

イベント

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);
    }
);