2013-01-07 32 views
1

上執行有一個簡單的方法來計算一個CakePHP的頁面上執行的所有查詢?指望有多少疑問是一頁

我只是需要一個數字,代表許多查詢是如何從我的AppController開始執行,頁面渲染結束。

+0

您是否在尋找控制器中的信息或計數變量? –

+0

查看編輯後。這將是我的代碼執行多少個查詢的一個數字。 – BadHorsie

+1

你沒有使用[debug kit](https://github.com/cakephp/debug_kit)? – AD7six

回答

2

這基本上是sql_dump元件的編輯。它位於lib/cake/view /元素中。 無論如何,這是一個起點。

$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

除非將debug設置爲2,否則這將始終返回0(無需進一步更改) - 因爲這是唯一一次查詢記錄。 – AD7six

+0

如果sql_dump.ctp文件總是返回0,那麼這行是否存在?如果(!class_exists( '的ConnectionManager')||配置::閱讀( '調試')<2){ –

+2

,因爲 「做盡可能少」 是一個好主意,和'配置::讀( '調試')'不是一個常數。如果根本沒有加載模型(ConnectionManager類未加載)或元素被渲染時,debug小於2(根本不需要任何元素) - 保釋。 – AD7six