2013-01-07 3 views
1

Есть ли простой способ подсчета всех запросов, выполняемых на странице CakePHP?Подсчитайте, сколько запросов было выполнено на странице

Мне просто нужно число, представляющее, сколько запросов было выполнено с моего запуска AppController, до конца рендеринга страницы.

+0

Вы ищете только информацию или переменную count в контроллере? –

+0

См. Отредактированный пост. Это будет число для количества запросов, выполняемых моим кодом. – BadHorsie

+1

Вы не используете [комплект для отладки] (https://github.com/cakephp/debug_kit)? – AD7six

ответ

2

Это в основном редактирование элемента sql_dump. Которая находится в библиотеке lib/cake/view/elements. Это отправная точка для вас.

$sources = ConnectionManager::sourceList(); 
$logs = array(); 
foreach ($sources as $source): 
    $db = ConnectionManager::getDataSource($source); 
    if (!method_exists($db, 'getLog')): 
     continue; 
    endif; 
    $logs[$source] = $db->getLog(); 
endforeach; 

$queries = 0; 
foreach ($logs as $source => $logInfo): 
    $queries += $logInfo['count']; 
endforeach; 
+1

Это будет всегда возвращать 0 (без дальнейших изменений), если для параметра debug не установлено значение 2 - поскольку это единственные запросы времени, которые регистрируются вообще. – AD7six

+0

Есть ли причина, по которой эта строка присутствует в файле sql_dump.ctp, если она всегда будет возвращать 0? if (! class_exists ('ConnectionManager') || Configure :: read ('debug') <2) { –

+2

, потому что «сделать как можно меньше» - хорошая идея, а 'Configure :: read ('debug')' не является константой. Если вообще не было загруженных моделей (класс ConnectionManager не загружен) или когда элемент визуализируется, отладка меньше 2 (вообще ничего не требуется для элемента) - залог. – AD7six

Смежные вопросы