Как получить последний запрос выполнения в CakePHP 3.2?

Я хочу получить последний выполненный запрос в CakePHP 3.2, я использовал следующее в CakePHP 2.x:

function getLastQuery() { Configure::write('debug', 2); $dbo = $this->getDatasource(); $logs = $dbo->getLog(); $lastLog = end($logs['log']); $latQuery = $lastLog['query']; echo "<pre>"; print_r($latQuery); } 

Как я могу сделать это в CakePHP 3.x?

В простом английском: все, что вам нужно сделать, это изменить config / app.php

Найдите конфигурацию Datasources и установите 'log' => true

 'Datasources' => [ 'default' => [ 'className' => 'Cake\Database\Connection', 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'host' => 'localhost', ... 'log' => true, // Set this ] ] 

Если ваше приложение находится в режиме отладки, вы увидите SQL-запрос, когда на вашей странице отображается ошибка SQL. Если у вас нет режима отладки, вы можете зарегистрировать SQL-запросы в файле, добавив также следующее:

конфиг / app.php

Найдите конфигурацию Log и добавьте новый тип журнала:

 'Log' => [ 'debug' => [ 'className' => 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file' => 'debug', 'levels' => ['notice', 'info', 'debug'], 'url' => env('LOG_DEBUG_URL', null), ], 'error' => [ 'className' => 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file' => 'error', 'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'], 'url' => env('LOG_ERROR_URL', null), ], // Add the following... 'queries' => [ 'className' => 'File', 'path' => LOGS, 'file' => 'queries.log', 'scopes' => ['queriesLog'] ] ], 

Ваши SQL-запросы теперь будут записываться в файл журнала, который вы можете найти в /logs/queries.log

Добавлена ​​база данных \ ConnectionManager :: get (). Он заменяет getDataSource ()

После Cookbook 3.0 вам необходимо включить Query Logging и выбрать файл или консоль.

 use Cake\Log\Log; // Console logging Log::config('queries', [ 'className' => 'Console', 'stream' => 'php://stderr', 'scopes' => ['queriesLog'] ]); // File logging Log::config('queries', [ 'className' => 'File', 'path' => LOGS, 'file' => 'queries.log', 'scopes' => ['queriesLog'] ]); 

Cookbook 3.0 – ведение журнала запросов