| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/app/Plugin/DebugKit/Lib/Panel/ |
Upload File : |
<?php
/**
* SqlLog Panel
*
* Provides debug information on the SQL logs and provides links to an ajax explain interface.
*
* 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
* @package DebugKit.Lib.Panel
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
App::uses('DebugPanel', 'DebugKit.Lib');
/**
* Class SqlLogPanel
*
* @package DebugKit.Lib.Panel
*/
class SqlLogPanel extends DebugPanel {
/**
* Minimum number of Rows Per Millisecond that must be returned by a query before an explain
* is done.
*
* @var int
*/
public $slowRate = 20;
/**
* Gets the connection names that should have logs + dumps generated.
*
* @param \Controller|string $controller
* @return array
*/
public function beforeRender(Controller $controller) {
if (!class_exists('ConnectionManager')) {
return array();
}
$connections = array();
$dbConfigs = ConnectionManager::sourceList();
foreach ($dbConfigs as $configName) {
$driver = null;
$db = ConnectionManager::getDataSource($configName);
if (
(empty($db->config['driver']) && empty($db->config['datasource'])) ||
!method_exists($db, 'getLog')
) {
continue;
}
if (isset($db->config['datasource'])) {
$driver = $db->config['datasource'];
}
$explain = false;
$isExplainable = (preg_match('/(Mysql|Postgres)$/', $driver));
if ($isExplainable) {
$explain = true;
}
$connections[$configName] = $explain;
}
return array('connections' => $connections, 'threshold' => $this->slowRate);
}
}