| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- /**
- * SQL Log Panel Element
- *
- * PHP 5
- *
- * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- *
- * Licensed under The MIT License
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- * @link http://cakephp.org CakePHP(tm) Project
- * @since DebugKit 0.1
- * @license http://www.opensource.org/licenses/mit-license.php MIT License
- */
-
- $headers = array('Query', 'Affected', 'Num. rows', 'Took (ms)', 'Actions');
- if (isset($debugKitInHistoryMode)) {
- $content = $this->Toolbar->readCache('sql_log', $this->request->params['pass'][0]);
- }
- ?>
- <h2><?php echo __d('debug_kit', 'Sql Logs')?></h2>
- <?php if (!empty($content)) : ?>
- <?php foreach ($content['connections'] as $dbName => $explain): ?>
- <div class="sql-log-panel-query-log">
- <h4><?php echo $dbName ?></h4>
- <?php
- if (!isset($debugKitInHistoryMode)):
- $queryLog = $this->Toolbar->getQueryLogs($dbName, array(
- 'explain' => $explain, 'threshold' => $content['threshold']
- ));
- else:
- $queryLog = $content[$dbName];
- endif;
- if (empty($queryLog['queries'])):
- if (Configure::read('debug') < 2):
- echo ' ' . __d('debug_kit', 'No query logs when debug < 2.');
- else:
- echo ' ' . __d('debug_kit', 'No query logs.');
- endif;
- else:
- $hashes = array();
- $duplicate = 0;
- foreach ($queryLog['queries'] as $key => $val) {
- $hash = sha1($val['query']);
- if (!isset($hashes[$hash]) || $hashes[$hash] !== $val['affected']) {
- $hashes[$hash] = $val['affected'];
- continue;
- }
- $duplicate++;
-
- $queryLog['queries'][$key]['query'] = '<span class="alert-duplicate">' . $val['query'] . '</span>';
- }
-
- echo '<h5>';
- echo __d(
- 'debug_kit',
- 'Total Time: %s ms <br />Total Queries: %s queries',
- $queryLog['time'],
- $queryLog['count']
- );
- echo '</h5>';
- echo $this->Toolbar->table($queryLog['queries'], $headers, array('title' => 'SQL Log ' . $dbName));
- if ($duplicate) {
- echo '<p class="alert alert-warning">' . __d('debug_kit', '%s duplicate queries run.', $duplicate) . '</p>';
- }
- ?>
- <h4><?php echo __d('debug_kit', 'Query Explain:'); ?></h4>
- <div id="sql-log-explain-<?php echo $dbName ?>">
- <a id="debug-kit-explain-<?php echo $dbName ?>"> </a>
- <p><?php echo __d('debug_kit', 'Click an "Explain" link above, to see the query explanation.'); ?></p>
- </div>
- <?php endif; ?>
- </div>
- <?php endforeach; ?>
- <?php else:
- echo $this->Toolbar->message('Warning', __d('debug_kit', 'No active database connections'));
- endif;
|