This commit is contained in:
File diff suppressed because it is too large
Load Diff
Executable
+360
@@ -0,0 +1,360 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 6844 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
//
|
||||
// IMPORTANT : don't forget to delete the underscore _ in the file name if you want to use it !
|
||||
//
|
||||
|
||||
function developpementErrorHandler($errno, $errstr, $errfile, $errline)
|
||||
{
|
||||
if (!(error_reporting() & $errno))
|
||||
return;
|
||||
switch($errno)
|
||||
{
|
||||
case E_ERROR:
|
||||
echo '[PHP Error #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_WARNING:
|
||||
echo '[PHP Warning #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_PARSE:
|
||||
echo '[PHP Parse #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_NOTICE:
|
||||
echo '[PHP Notice #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_CORE_ERROR:
|
||||
echo '[PHP Core #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_CORE_WARNING:
|
||||
echo '[PHP Core warning #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_COMPILE_ERROR:
|
||||
echo '[PHP Compile #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_COMPILE_WARNING:
|
||||
echo '[PHP Compile warning #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_USER_ERROR:
|
||||
echo '[PHP Error #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_USER_WARNING:
|
||||
echo '[PHP User warning #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_USER_NOTICE:
|
||||
echo '[PHP User notice #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_STRICT:
|
||||
echo '[PHP Strict #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
case E_RECOVERABLE_ERROR:
|
||||
echo '[PHP Recoverable error #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
break;
|
||||
default:
|
||||
echo '[PHP Unknown error #'.$errno.'] '.$errstr.' ('.$errfile.', line '.$errline.')';
|
||||
}
|
||||
die;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
class FrontController extends FrontControllerCore
|
||||
{
|
||||
public $_memory = array();
|
||||
public $_time = array();
|
||||
private static $_footer = true;
|
||||
|
||||
public static function disableParentCalls()
|
||||
{
|
||||
self::$_footer = false;
|
||||
}
|
||||
|
||||
private function displayMemoryColor($n)
|
||||
{
|
||||
$n /= 1048576;
|
||||
if ($n > 3)
|
||||
return '<span style="color:red">'.round($n, 2).' Mb</span>';
|
||||
if ($n > 1)
|
||||
return '<span style="color:orange">'.round($n, 2).' Mb</span>';
|
||||
return '<span style="color:green">'.round($n, 2).' Mb</span>';
|
||||
}
|
||||
|
||||
private function displaySQLQueries($n)
|
||||
{
|
||||
if ($n > 150)
|
||||
return '<span style="color:red">'.$n.' queries</span>';
|
||||
if ($n > 100)
|
||||
return '<span style="color:orange">'.$n.' queries</span>';
|
||||
return '<span style="color:green">'.$n.' quer'.($n == 1 ? 'y' : 'ies').'</span>';
|
||||
}
|
||||
|
||||
private function displayLoadTimeColor($n, $kikoo = false)
|
||||
{
|
||||
if ($n > 1)
|
||||
return '<span style="color:red">'.round($n, 3).'s</span>'.($kikoo ? '<br />You\'d better run your shop on a toaster' : '');
|
||||
if ($n > 0.5)
|
||||
return '<span style="color:orange">'.round($n * 1000).'ms</span>'.($kikoo ? '<br />I hope it is a shared hosting' : '');
|
||||
return '<span style="color:green">'.round($n * 1000).'ms</span>'.($kikoo ? '<br />Good boy! That\'s what I call a webserver!' : '');
|
||||
}
|
||||
|
||||
private function getTimeColor($n)
|
||||
{
|
||||
if ($n > 4)
|
||||
return 'style="color:red"';
|
||||
if ($n > 2)
|
||||
return 'style="color:orange"';
|
||||
return 'style="color:green"';
|
||||
}
|
||||
|
||||
private function getQueryColor($n)
|
||||
{
|
||||
if ($n > 5)
|
||||
return 'style="color:red"';
|
||||
if ($n > 2)
|
||||
return 'style="color:orange"';
|
||||
return 'style="color:green"';
|
||||
}
|
||||
|
||||
private function getTableColor($n)
|
||||
{
|
||||
if ($n > 30)
|
||||
return 'style="color:red"';
|
||||
if ($n > 20)
|
||||
return 'style="color:orange"';
|
||||
return 'style="color:green"';
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// error management
|
||||
set_error_handler('developpementErrorHandler');
|
||||
ini_set('html_errors', 'on');
|
||||
ini_set('display_errors', 'on');
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
$this->_memory = array_fill(0, 10, 0);
|
||||
$this->_time = array_fill(0, 10, 0);
|
||||
|
||||
// Usually set in the parent constructor, but here I need it to evaluate init()
|
||||
$useSSL = $this->ssl;
|
||||
|
||||
if (!self::$_footer)
|
||||
return;
|
||||
|
||||
$this->_memory[-3] = memory_get_usage();
|
||||
$this->_time[-3] = microtime(true);
|
||||
$this->init();
|
||||
$this->_memory[-2] = memory_get_usage();
|
||||
$this->_time[-2] = microtime(true);
|
||||
parent::__construct();
|
||||
$this->_memory[-1] = memory_get_usage();
|
||||
$this->_time[-1] = microtime(true);
|
||||
}
|
||||
|
||||
public function run()
|
||||
{
|
||||
$this->_memory[0] = memory_get_usage();
|
||||
$this->_time[0] = microtime(true);
|
||||
$this->preProcess();
|
||||
$this->_memory[1] = memory_get_usage();
|
||||
$this->_time[1] = microtime(true);
|
||||
$this->setMedia();
|
||||
$this->_memory[2] = memory_get_usage();
|
||||
$this->_time[2] = microtime(true);
|
||||
$this->displayHeader();
|
||||
$this->_memory[3] = memory_get_usage();
|
||||
$this->_time[3] = microtime(true);
|
||||
$this->process();
|
||||
$this->_memory[4] = memory_get_usage();
|
||||
$this->_time[4] = microtime(true);
|
||||
$this->displayContent();
|
||||
$this->_memory[5] = memory_get_usage();
|
||||
$this->_time[5] = microtime(true);
|
||||
$this->displayFooter();
|
||||
}
|
||||
|
||||
function ini_get_display_errors()
|
||||
{
|
||||
$a = 'display_errors';
|
||||
$b = ini_get($a);
|
||||
switch (strtolower($b))
|
||||
{
|
||||
case 'on':
|
||||
case 'yes':
|
||||
case 'true':
|
||||
return 'assert.active' !== $a;
|
||||
case 'stdout':
|
||||
case 'stderr':
|
||||
return 'display_errors' === $a;
|
||||
default:
|
||||
return (bool)(int)$b;
|
||||
}
|
||||
}
|
||||
|
||||
private function sizeofvar($var)
|
||||
{
|
||||
$start_memory = memory_get_usage();
|
||||
$tmp = unserialize(serialize($var));
|
||||
$size = memory_get_usage() - $start_memory;
|
||||
return $size;
|
||||
}
|
||||
|
||||
public function displayFooter()
|
||||
{
|
||||
global $start_time;
|
||||
|
||||
if (self::$_footer)
|
||||
parent::displayFooter();
|
||||
|
||||
if (!$this->ini_get_display_errors())
|
||||
return;
|
||||
|
||||
$this->_memory[6] = memory_get_usage();
|
||||
$this->_time[6] = microtime(true);
|
||||
|
||||
$hr = '<hr style="color:#F5F5F5;margin:2px" />';
|
||||
|
||||
$totalSize = 0;
|
||||
foreach (get_included_files() as $file)
|
||||
$totalSize += filesize($file);
|
||||
|
||||
$totalQueryTime = 0;
|
||||
foreach (Db::getInstance()->queriesTime as $time)
|
||||
$totalQueryTime += $time;
|
||||
|
||||
$hooktime = Module::getHookTime();
|
||||
arsort($hooktime);
|
||||
$totalHookTime = 0;
|
||||
foreach ($hooktime as $time)
|
||||
$totalHookTime += $time;
|
||||
|
||||
$globalSize = array();
|
||||
$totalGlobalSize = 0;
|
||||
foreach ($GLOBALS as $key => $value)
|
||||
if ($key != 'GLOBALS')
|
||||
{
|
||||
$totalGlobalSize += ($size = $this->sizeofvar($value));
|
||||
if ($size > 1024)
|
||||
$globalSize[$key] = round($size / 1024, 1);
|
||||
}
|
||||
arsort($globalSize);
|
||||
|
||||
echo '<br /><br />
|
||||
<div class="rte" style="text-align:left;padding:8px;float:left">
|
||||
<b>Load time</b>: '.$this->displayLoadTimeColor($this->_time[6] - $start_time, true).'';
|
||||
if (self::$_footer)
|
||||
echo '
|
||||
<ul>
|
||||
<li>Config: '.$this->displayLoadTimeColor($this->_time[-3] - $start_time).'</li>
|
||||
<li>Init: '.$this->displayLoadTimeColor(($this->_time[-2] - $this->_time[-3])).'</li>
|
||||
<li>Constructor: '.$this->displayLoadTimeColor(($this->_time[-1] - $this->_time[-2])).'</li>
|
||||
<li>preProcess: '.$this->displayLoadTimeColor(($this->_time[1] - $this->_time[0])).'</li>
|
||||
<li>setMedia: '.$this->displayLoadTimeColor(($this->_time[2] - $this->_time[1])).'</li>
|
||||
<li>displayHeader: '.$this->displayLoadTimeColor(($this->_time[3] - $this->_time[2])).'</li>
|
||||
<li>process: '.$this->displayLoadTimeColor(($this->_time[4] - $this->_time[3])).'</li>
|
||||
<li>displayContent: '.$this->displayLoadTimeColor(($this->_time[5] - $this->_time[4])).'</li>
|
||||
<li>displayFooter: '.$this->displayLoadTimeColor(($this->_time[6] - $this->_time[5])).'</li>
|
||||
</ul>';
|
||||
echo '</div>
|
||||
<div class="rte" style="text-align:left;padding:8px;float:left;margin-left:20px">
|
||||
<b>Hook processing</b>: '.$this->displayLoadTimeColor($totalHookTime).'
|
||||
<ul>';
|
||||
foreach ($hooktime as $hook => $time)
|
||||
echo '<li>'.$hook.': '.$this->displayLoadTimeColor($time).'</li>';
|
||||
echo '</ul>
|
||||
</div>
|
||||
<div class="rte" style="text-align:left;padding:8px;float:left;margin-left:20px">
|
||||
<b>Memory peak usage</b>: '.$this->displayMemoryColor(memory_get_peak_usage()).'';
|
||||
if (self::$_footer)
|
||||
echo '
|
||||
<ul>
|
||||
<li>Config: '.$this->displayMemoryColor($this->_memory[-3]).'</li>
|
||||
<li>Init: '.$this->displayMemoryColor(($this->_memory[-2] - $this->_memory[-3])).'</li>
|
||||
<li>Constructor: '.$this->displayMemoryColor(($this->_memory[-1] - $this->_memory[-2])).'</li>
|
||||
<li>preProcess: '.$this->displayMemoryColor(($this->_memory[1] - $this->_memory[0])).'</li>
|
||||
<li>setMedia: '.$this->displayMemoryColor(($this->_memory[2] - $this->_memory[1])).'</li>
|
||||
<li>displayHeader: '.$this->displayMemoryColor(($this->_memory[3] - $this->_memory[2])).'</li>
|
||||
<li>process: '.$this->displayMemoryColor(($this->_memory[4] - $this->_memory[3])).'</li>
|
||||
<li>displayContent: '.$this->displayMemoryColor(($this->_memory[5] - $this->_memory[4])).'</li><li>displayFooter: '.$this->displayMemoryColor(($this->_memory[6] - $this->_memory[5])).'</li>
|
||||
</ul>';
|
||||
echo '</div>';
|
||||
|
||||
$countByTypes = '';
|
||||
foreach (Db::getInstance()->countTypes as $type => $count)
|
||||
if ($count)
|
||||
$countByTypes .= '<li>'.$count.' x '.$type.'</li>';
|
||||
$countByTypes = rtrim($countByTypes, ' |');
|
||||
|
||||
echo '
|
||||
<div class="rte" style="text-align:left;padding:8px;float:left;margin-left:20px">
|
||||
<b>SQL Queries</b>: '.$this->displaySQLQueries(Db::getInstance()->count).'
|
||||
<ul>'.$countByTypes.'</ul>
|
||||
<br /><b>Time spent querying</b>: '.$this->displayLoadTimeColor($totalQueryTime).'
|
||||
</div>
|
||||
<div class="rte" style="text-align:left;padding:8px;float:left;margin-left:20px">
|
||||
<b>Included files</b>: '.sizeof(get_included_files()).'<br />
|
||||
<b>Size of included files</b>: '.$this->displayMemoryColor($totalSize).'
|
||||
</div>
|
||||
<div class="rte" style="text-align:left;padding:8px;float:left;margin-left:20px">
|
||||
<b>Globals (> 1 Ko only): '.round($totalGlobalSize / 1024).' Ko</b>
|
||||
<ul>';
|
||||
foreach ($globalSize as $global => $size)
|
||||
echo '<li>'.$global.' ≈ '.$size.' Ko</li>';
|
||||
echo '</ul>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
<div class="rte" style="text-align:left;padding:8px;clear:both;margin-top:20px">
|
||||
<ul>
|
||||
<li><a href="#stopwatch">Go to Stopwatch</a></li>
|
||||
<li><a href="#doubles">Go to Doubles</a></li>
|
||||
<li><a href="#tables">Go to Tables</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="rte" style="text-align:left;padding:8px">
|
||||
<h3><a name="stopwatch">Stopwatch (with SQL_NO_CACHE)</a></h3>';
|
||||
$queries = Db::getInstance()->queriesTime;
|
||||
arsort($queries);
|
||||
foreach ($queries as $q => $time)
|
||||
echo $hr.'<b '.$this->getTimeColor($time * 1000).'>'.round($time * 1000, 3).' ms</b> '.$q;
|
||||
echo '</div>
|
||||
<div class="rte" style="text-align:left;padding:8px">
|
||||
<h3><a name="doubles">Doubles (IDs replaced by "XX")</a></h3>';
|
||||
$queries = Db::getInstance()->queries;
|
||||
arsort($queries);
|
||||
foreach ($queries as $q => $nb)
|
||||
echo $hr.'<b '.$this->getQueryColor($nb).'>'.$nb.'</b> '.$q;
|
||||
echo '</div>
|
||||
<div class="rte" style="text-align:left;padding:8px">
|
||||
<h3><a name="tables">Tables stress</a></h3>';
|
||||
$tables = Db::getInstance()->tables;
|
||||
arsort($tables);
|
||||
foreach ($tables as $table => $nb)
|
||||
echo $hr.'<b '.$this->getTableColor($nb).'>'.$nb.'</b> '.$table;
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 7310 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
//
|
||||
// IMPORTANT : don't forget to delete the underscore _ in the file name if you want to use it !
|
||||
//
|
||||
|
||||
class Module extends ModuleCore
|
||||
{
|
||||
private static $hookTime = array();
|
||||
|
||||
public static function getHookTime()
|
||||
{
|
||||
return self::$hookTime;
|
||||
}
|
||||
|
||||
public static function hookExec($hook_name, $hookArgs = array(), $id_module = NULL)
|
||||
{
|
||||
$t0 = microtime(true);
|
||||
$result = parent::hookExec($hook_name, $hookArgs, $id_module);
|
||||
self::$hookTime[$hook_name] = microtime(true) - $t0;
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 6844 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
//
|
||||
// IMPORTANT : don't forget to delete the underscore _ in the file name if you want to use it !
|
||||
//
|
||||
|
||||
class MySQL extends MySQLCore
|
||||
{
|
||||
public $count = 0;
|
||||
public $queries = array();
|
||||
public $queriesTime = array();
|
||||
public $tables = array();
|
||||
public $countTypes = array('getRow' => 0, 'getValue' => 0, 'Execute' => 0, 'ExecuteS' => 0, 'delete' => 0, 'q' => 0);
|
||||
|
||||
private function disableCache($query)
|
||||
{
|
||||
return preg_replace('/^select /', 'SELECT SQL_NO_CACHE', trim($query));
|
||||
}
|
||||
|
||||
public function getRow($query, $use_cache = 1)
|
||||
{
|
||||
$this->count++;
|
||||
$this->countTypes['getRow']++;
|
||||
$query2 = preg_replace('/[0-9]+/', '<span style="color:blue">XX</span>', $query);
|
||||
if (!isset($this->queries[$query2]))
|
||||
$this->queries[$query2] = 0;
|
||||
$this->queries[$query2]++;
|
||||
preg_match_all('/(from|join)\s+`?'.preg_replace('/[0-9]+/', 'XX', _DB_PREFIX_).'([a-z0-9_-]+)/ui', $query2, $matches);
|
||||
foreach ($matches[2] as $table)
|
||||
{
|
||||
if (!isset($this->tables[$table]))
|
||||
$this->tables[$table] = 0;
|
||||
$this->tables[$table]++;
|
||||
}
|
||||
|
||||
$query = $this->disableCache($query);
|
||||
$t0 = microtime(true);
|
||||
|
||||
$return = parent::getRow($query, $use_cache);
|
||||
|
||||
if (!isset($this->queriesTime[$query]))
|
||||
$this->queriesTime[$query] = microtime(true)-$t0;
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function getValue($query, $use_cache = 1)
|
||||
{
|
||||
$this->count++;
|
||||
$this->countTypes['getValue']++;
|
||||
$query2 = preg_replace('/[0-9]+/', '<span style="color:blue">XX</span>', $query);
|
||||
if (!isset($this->queries[$query2]))
|
||||
$this->queries[$query2] = 0;
|
||||
$this->queries[$query2]++;
|
||||
preg_match_all('/(from|join)\s+`?'.preg_replace('/[0-9]+/', 'XX', _DB_PREFIX_).'([a-z0-9_-]+)/ui', $query2, $matches);
|
||||
foreach ($matches[2] as $table)
|
||||
{
|
||||
if (!isset($this->tables[$table]))
|
||||
$this->tables[$table] = 0;
|
||||
$this->tables[$table]++;
|
||||
}
|
||||
|
||||
$query = $this->disableCache($query);
|
||||
$t0 = microtime(true);
|
||||
|
||||
$return = parent::getValue($query, $use_cache);
|
||||
|
||||
if (!isset($this->queriesTime[$query]))
|
||||
$this->queriesTime[$query] = microtime(true)-$t0;
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function Execute($query, $use_cache = 1)
|
||||
{
|
||||
$this->count++;
|
||||
$this->countTypes['Execute']++;
|
||||
$query2 = preg_replace('/[0-9]+/', '<span style="color:blue">XX</span>', $query);
|
||||
if (!isset($this->queries[$query2]))
|
||||
$this->queries[$query2] = 0;
|
||||
$this->queries[$query2]++;
|
||||
preg_match_all('/(from|join)\s+`?'.preg_replace('/[0-9]+/', 'XX', _DB_PREFIX_).'([a-z0-9_-]+)/ui', $query2, $matches);
|
||||
foreach ($matches[2] as $table)
|
||||
{
|
||||
if (!isset($this->tables[$table]))
|
||||
$this->tables[$table] = 0;
|
||||
$this->tables[$table]++;
|
||||
}
|
||||
|
||||
$query = $this->disableCache($query);
|
||||
$t0 = microtime(true);
|
||||
|
||||
$return = parent::Execute($query, $use_cache);
|
||||
|
||||
if (!isset($this->queriesTime[$query]))
|
||||
$this->queriesTime[$query] = microtime(true)-$t0;
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function ExecuteS($query, $array = true, $use_cache = 1)
|
||||
{
|
||||
$this->count++;
|
||||
$this->countTypes['ExecuteS']++;
|
||||
$query2 = preg_replace('/[0-9]+/', '<span style="color:blue">XX</span>', $query);
|
||||
if (!isset($this->queries[$query2]))
|
||||
$this->queries[$query2] = 0;
|
||||
$this->queries[$query2]++;
|
||||
preg_match_all('/(from|join)\s+`?'.preg_replace('/[0-9]+/', 'XX', _DB_PREFIX_).'([a-z0-9_-]+)/ui', $query2, $matches);
|
||||
foreach ($matches[2] as $table)
|
||||
{
|
||||
if (!isset($this->tables[$table]))
|
||||
$this->tables[$table] = 0;
|
||||
$this->tables[$table]++;
|
||||
}
|
||||
|
||||
$query = $this->disableCache($query);
|
||||
$t0 = microtime(true);
|
||||
|
||||
$return = parent::ExecuteS($query, $array, $use_cache);
|
||||
|
||||
if (!isset($this->queriesTime[$query]))
|
||||
$this->queriesTime[$query] = microtime(true)-$t0;
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function delete($table, $where = false, $limit = false, $use_cache = 1)
|
||||
{
|
||||
$this->_result = false;
|
||||
if ($this->_link)
|
||||
{
|
||||
$query = 'DELETE FROM `'.pSQL($table).'`'.($where ? ' WHERE '.$where : '').($limit ? ' LIMIT '.(int)($limit) : '');
|
||||
|
||||
$this->count++;
|
||||
$this->countTypes['delete']++;
|
||||
$query2 = preg_replace('/[0-9]+/', '<span style="color:blue">XX</span>', $query);
|
||||
if (!isset($this->queries[$query2]))
|
||||
$this->queries[$query2] = 0;
|
||||
$this->queries[$query2]++;
|
||||
preg_match_all('/(from|join)\s+`?'.preg_replace('/[0-9]+/', 'XX', _DB_PREFIX_).'([a-z0-9_-]+)/ui', $query2, $matches);
|
||||
foreach ($matches[2] as $table)
|
||||
{
|
||||
if (!isset($this->tables[$table]))
|
||||
$this->tables[$table] = 0;
|
||||
$this->tables[$table]++;
|
||||
}
|
||||
|
||||
$query = $this->disableCache($query);
|
||||
$t0 = microtime(true);
|
||||
|
||||
$return = parent::delete($table, $where, $limit, $use_cache);
|
||||
|
||||
if (!isset($this->queriesTime[$query]))
|
||||
$this->queriesTime[$query] = microtime(true)-$t0;
|
||||
|
||||
return $return;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function q($query, $use_cache = 1)
|
||||
{
|
||||
$this->count++;
|
||||
$this->countTypes['q']++;
|
||||
$query2 = preg_replace('/[0-9]+/', '<span style="color:blue">XX</span>', $query);
|
||||
if (!isset($this->queries[$query2]))
|
||||
$this->queries[$query2] = 0;
|
||||
$this->queries[$query2]++;
|
||||
preg_match_all('/(from|join)\s+`?'.preg_replace('/[0-9]+/', 'XX', _DB_PREFIX_).'([a-z0-9_-]+)/ui', $query2, $matches);
|
||||
foreach ($matches[2] as $table)
|
||||
{
|
||||
if (!isset($this->tables[$table]))
|
||||
$this->tables[$table] = 0;
|
||||
$this->tables[$table]++;
|
||||
}
|
||||
|
||||
$query = $this->disableCache($query);
|
||||
$t0 = microtime(true);
|
||||
|
||||
$return = parent::q($query, $use_cache);
|
||||
|
||||
if (!isset($this->queriesTime[$query]))
|
||||
$this->queriesTime[$query] = microtime(true)-$t0;
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
Executable
+316
@@ -0,0 +1,316 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 6844 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
//
|
||||
// IMPORTANT : don't forget to delete the underscore _ in the file name if you want to use it !
|
||||
//
|
||||
|
||||
// if FB class is already loaded, just enable it. else, enable it only if fb.php exists and is loaded
|
||||
if (!defined('PS_USE_FIREPHP') AND class_exists('FB'))
|
||||
define('PS_USE_FIREPHP',true);
|
||||
elseif (file_exists(dirname(__FILE__).DIRECTORY_SEPARATOR.'fb.php'))
|
||||
{
|
||||
if (!defined('PS_USE_FIREPHP'))
|
||||
{
|
||||
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'fb.php');
|
||||
define('PS_USE_FIREPHP',true);
|
||||
}
|
||||
else
|
||||
define('PS_USE_FIREPHP',false);
|
||||
}
|
||||
else
|
||||
define('PS_USE_FIREPHP',class_exists('FB'));
|
||||
|
||||
class Tools extends ToolsCore
|
||||
{
|
||||
|
||||
/**
|
||||
* Redirect user to another page after 5 sec
|
||||
*
|
||||
* @param string $url Desired URL
|
||||
* @param string $baseUri Base URI (optional)
|
||||
*/
|
||||
public static function redirect($url, $baseUri = __PS_BASE_URI__)
|
||||
{
|
||||
if (strpos($url, 'http://') === FALSE && strpos($url, 'https://') === FALSE)
|
||||
{
|
||||
global $link;
|
||||
if (strpos($url, $baseUri) !== FALSE && strpos($url, $baseUri) == 0)
|
||||
$url = substr($url, strlen($baseUri));
|
||||
$explode = explode('?', $url);
|
||||
$url = $link->getPageLink($explode[0], true);
|
||||
if (isset($explode[1]))
|
||||
$url .= '?'.$explode[1];
|
||||
$baseUri = '';
|
||||
}
|
||||
|
||||
if (isset($_SERVER['HTTP_REFERER']) AND ($url == $_SERVER['HTTP_REFERER']))
|
||||
header('Refresh: 5; url='.$_SERVER['HTTP_REFERER']);
|
||||
else
|
||||
header('Refresh: 5; url='.$baseUri.$url);
|
||||
exit;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Redirect url wich allready PS_BASE_URI after 5 sec
|
||||
*
|
||||
* @param string $url Desired URL
|
||||
*/
|
||||
public static function redirectLink($url)
|
||||
{
|
||||
if (!preg_match('@^https?://@i', $url))
|
||||
{
|
||||
global $link;
|
||||
if (strpos($url, __PS_BASE_URI__) !== FALSE && strpos($url, __PS_BASE_URI__) == 0)
|
||||
$url = substr($url, strlen(__PS_BASE_URI__));
|
||||
$explode = explode('?', $url);
|
||||
$url = $link->getPageLink($explode[0]);
|
||||
if (isset($explode[1]))
|
||||
$url .= '?'.$explode[1];
|
||||
}
|
||||
|
||||
header('Refresh: 5; url='.$url);
|
||||
echo '<h1>Redirection automatique dans 5 secondes</h1><a href='.$url.'>'.$url.'</a>';
|
||||
exit;
|
||||
}
|
||||
/**
|
||||
* Redirect user to another admin page after 5 sec
|
||||
*
|
||||
* @param string $url Desired URL
|
||||
*/
|
||||
public static function redirectAdmin($url)
|
||||
{
|
||||
header('Refresh: 5; url='.$url);
|
||||
echo '<h1>Redirection automatique dans 5 secondes</h1><a href='.$url.'>'.$url.'</a>';
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display an error with detailed object
|
||||
* (display in firefox console if Firephp is enabled)
|
||||
*
|
||||
* @param mixed $object
|
||||
* @param boolean $kill
|
||||
* @return $object if $kill = false;
|
||||
*/
|
||||
public static function dieObject($object, $kill = true)
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::error($object);
|
||||
else
|
||||
return parent::dieObject($object,$kill);
|
||||
|
||||
if ($kill)
|
||||
die('END');
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* ALIAS OF dieObject() - Display an error with detailed object
|
||||
* (display in firefox console if Firephp is enabled)
|
||||
*
|
||||
* @param object $object Object to display
|
||||
*/
|
||||
public static function d($obj, $kill = true)
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::error($obj);
|
||||
else
|
||||
parent::d($obj,$kill);
|
||||
|
||||
if ($kill)
|
||||
die('END');
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* ALIAS OF dieObject() - Display an error with detailed object but don't stop the execution
|
||||
* (display in firefox console if Firephp is enabled)
|
||||
*
|
||||
* @param object $object Object to display
|
||||
*/
|
||||
public static function p($object)
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::info($object);
|
||||
else
|
||||
return parent::p($object);
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a warning message indicating that the method is deprecated
|
||||
* (display in firefox console if Firephp is enabled)
|
||||
*/
|
||||
public static function displayAsDeprecated()
|
||||
{
|
||||
|
||||
if (_PS_DISPLAY_COMPATIBILITY_WARNING_)
|
||||
{
|
||||
$backtrace = debug_backtrace();
|
||||
$callee = next($backtrace);
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::warn('Function <strong>'.$callee['function'].'()</strong> is deprecated in <strong>'.$callee['file'].'</strong> on line <strong>'.$callee['line'].'</strong><br />', 'Deprecated method');
|
||||
else
|
||||
trigger_error('Function <strong>'.$callee['function'].'()</strong> is deprecated in <strong>'.$callee['file'].'</strong> on line <strong>'.$callee['line'].'</strong><br />', E_USER_WARNING);
|
||||
|
||||
$message = Tools::displayError('The function').' '.$callee['function'].' ('.Tools::displayError('Line').' '.$callee['line'].') '.Tools::displayError('is deprecated and will be removed in the next major version.');
|
||||
Logger::addLog($message, 3, $callee['class']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a warning message indicating that the parameter is deprecated
|
||||
* (display in firefox console if Firephp is enabled)
|
||||
*/
|
||||
public static function displayParameterAsDeprecated($parameter)
|
||||
{
|
||||
if (_PS_DISPLAY_COMPATIBILITY_WARNING_)
|
||||
{
|
||||
$backtrace = debug_backtrace();
|
||||
$callee = next($backtrace);
|
||||
trigger_error('Parameter <strong>'.$parameter.'</strong> in function <strong>'.$callee['function'].'()</strong> is deprecated in <strong>'.$callee['file'].'</strong> on line <strong>'.$callee['Line'].'</strong><br />', E_USER_WARNING);
|
||||
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::trace('Parameter <strong>'.$parameter.'</strong> in function <strong>'.$callee['function'].'()</strong> is deprecated in <strong>'.$callee['file'].'</strong> on line <strong>'.$callee['Line'].'</strong><br />', 'deprecated parameter');
|
||||
else
|
||||
$message = Tools::displayError('The parameter').' '.$parameter.' '.Tools::displayError(' in function ').' '.$callee['function'].' ('.Tools::displayError('Line').' '.$callee['Line'].') '.Tools::displayError('is deprecated and will be removed in the next major version.');
|
||||
|
||||
Logger::addLog($message, 3, $callee['class']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* use of FirePHP::error() if allowed
|
||||
*
|
||||
* @param mixed $obj
|
||||
* @param string $label
|
||||
* @return void
|
||||
*/
|
||||
public static function error($obj, $label = '')
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::error($object, $label);
|
||||
}
|
||||
|
||||
/**
|
||||
* use of FirePHP::warn() if allowed
|
||||
*
|
||||
* @param mixed $obj
|
||||
* @param string $label
|
||||
* @return void
|
||||
*/
|
||||
public static function warn($obj, $label = '')
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::warn($obj, $label);
|
||||
}
|
||||
|
||||
/**
|
||||
* use of FirePHP::info() if allowed
|
||||
*
|
||||
* @param mixed $obj
|
||||
* @param string $label
|
||||
* @return void
|
||||
*/
|
||||
public static function info($obj, $label = '')
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::info($obj, $label);
|
||||
}
|
||||
|
||||
/**
|
||||
* use of FirePHP::log() if allowed
|
||||
*
|
||||
* @param mixed $obj
|
||||
* @param string $label
|
||||
* @return void
|
||||
*/
|
||||
public static function log($obj, $label = '')
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::log($obj,$label);
|
||||
}
|
||||
/**
|
||||
* display debug_backtrace()
|
||||
* (display in firefox console if Firephp is enabled)
|
||||
*
|
||||
* @param mixed $obj
|
||||
* @return void
|
||||
*/
|
||||
public static function trace($obj = NULL, $label = '')
|
||||
{
|
||||
if(PS_USE_FIREPHP)
|
||||
FB::trace($obj, $label);
|
||||
else{
|
||||
Tools::p($obj);
|
||||
echo'<pre><h1>'.$label.'</h1><br/>';
|
||||
debug_print_backtrace();
|
||||
echo '</pre>';
|
||||
}
|
||||
}
|
||||
}
|
||||
// Add some convenient shortcut
|
||||
|
||||
if (!function_exists('error'))
|
||||
{
|
||||
function error($obj, $label = ''){
|
||||
return Tools::error($obj, $label);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('warn'))
|
||||
{
|
||||
function warn($obj, $label = ''){
|
||||
return Tools::warn($obj,$label);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('info'))
|
||||
{
|
||||
function info($obj, $label = ''){
|
||||
return Tools::info($obj, $label);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('log'))
|
||||
{
|
||||
function log($obj, $label = ''){
|
||||
return Tools::log($obj, $label);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('trace'))
|
||||
{
|
||||
function trace($obj, $label = ''){
|
||||
return Tools::trace($obj, $label);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,276 @@
|
||||
<?php
|
||||
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
*
|
||||
* This file is part of FirePHP (http://www.firephp.org/).
|
||||
*
|
||||
* Software License Agreement (New BSD License)
|
||||
*
|
||||
* Copyright (c) 2006-2010, Christoph Dorn
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of Christoph Dorn nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* ***** END LICENSE BLOCK *****
|
||||
*
|
||||
* @copyright Copyright (C) 2007-2009 Christoph Dorn
|
||||
* @author Christoph Dorn <christoph@christophdorn.com>
|
||||
* @license http://www.opensource.org/licenses/bsd-license.php
|
||||
* @package FirePHPCore
|
||||
*/
|
||||
|
||||
if(!class_exists('FirePHP')) {
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'FirePHP.class.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the given data to the FirePHP Firefox Extension.
|
||||
* The data can be displayed in the Firebug Console or in the
|
||||
* "Server" request tab.
|
||||
*
|
||||
* @see http://www.firephp.org/Wiki/Reference/Fb
|
||||
* @param mixed $Object
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
function fb()
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array($instance,'fb'),$args);
|
||||
}
|
||||
|
||||
|
||||
class FB
|
||||
{
|
||||
/**
|
||||
* Enable and disable logging to Firebug
|
||||
*
|
||||
* @see FirePHP->setEnabled()
|
||||
* @param boolean $Enabled TRUE to enable, FALSE to disable
|
||||
* @return void
|
||||
*/
|
||||
public static function setEnabled($Enabled)
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
$instance->setEnabled($Enabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if logging is enabled
|
||||
*
|
||||
* @see FirePHP->getEnabled()
|
||||
* @return boolean TRUE if enabled
|
||||
*/
|
||||
public static function getEnabled()
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
return $instance->getEnabled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Specify a filter to be used when encoding an object
|
||||
*
|
||||
* Filters are used to exclude object members.
|
||||
*
|
||||
* @see FirePHP->setObjectFilter()
|
||||
* @param string $Class The class name of the object
|
||||
* @param array $Filter An array or members to exclude
|
||||
* @return void
|
||||
*/
|
||||
public static function setObjectFilter($Class, $Filter)
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
$instance->setObjectFilter($Class, $Filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set some options for the library
|
||||
*
|
||||
* @see FirePHP->setOptions()
|
||||
* @param array $Options The options to be set
|
||||
* @return void
|
||||
*/
|
||||
public static function setOptions($Options)
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
$instance->setOptions($Options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get options for the library
|
||||
*
|
||||
* @see FirePHP->getOptions()
|
||||
* @return array The options
|
||||
*/
|
||||
public static function getOptions()
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
return $instance->getOptions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Log object to firebug
|
||||
*
|
||||
* @see http://www.firephp.org/Wiki/Reference/Fb
|
||||
* @param mixed $Object
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function send()
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array($instance,'fb'),$args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start a group for following messages
|
||||
*
|
||||
* Options:
|
||||
* Collapsed: [true|false]
|
||||
* Color: [#RRGGBB|ColorName]
|
||||
*
|
||||
* @param string $Name
|
||||
* @param array $Options OPTIONAL Instructions on how to log the group
|
||||
* @return true
|
||||
*/
|
||||
public static function group($Name, $Options=null)
|
||||
{
|
||||
$instance = FirePHP::getInstance(true);
|
||||
return $instance->group($Name, $Options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ends a group you have started before
|
||||
*
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function groupEnd()
|
||||
{
|
||||
return self::send(null, null, FirePHP::GROUP_END);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log object with label to firebug console
|
||||
*
|
||||
* @see FirePHP::LOG
|
||||
* @param mixes $Object
|
||||
* @param string $Label
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function log($Object, $Label=null)
|
||||
{
|
||||
return self::send($Object, $Label, FirePHP::LOG);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log object with label to firebug console
|
||||
*
|
||||
* @see FirePHP::INFO
|
||||
* @param mixes $Object
|
||||
* @param string $Label
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function info($Object, $Label=null)
|
||||
{
|
||||
return self::send($Object, $Label, FirePHP::INFO);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log object with label to firebug console
|
||||
*
|
||||
* @see FirePHP::WARN
|
||||
* @param mixes $Object
|
||||
* @param string $Label
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function warn($Object, $Label=null)
|
||||
{
|
||||
return self::send($Object, $Label, FirePHP::WARN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log object with label to firebug console
|
||||
*
|
||||
* @see FirePHP::ERROR
|
||||
* @param mixes $Object
|
||||
* @param string $Label
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function error($Object, $Label=null)
|
||||
{
|
||||
return self::send($Object, $Label, FirePHP::ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dumps key and variable to firebug server panel
|
||||
*
|
||||
* @see FirePHP::DUMP
|
||||
* @param string $Key
|
||||
* @param mixed $Variable
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function dump($Key, $Variable)
|
||||
{
|
||||
return self::send($Variable, $Key, FirePHP::DUMP);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a trace in the firebug console
|
||||
*
|
||||
* @see FirePHP::TRACE
|
||||
* @param string $Label
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function trace($Label)
|
||||
{
|
||||
return self::send($Label, FirePHP::TRACE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a table in the firebug console
|
||||
*
|
||||
* @see FirePHP::TABLE
|
||||
* @param string $Label
|
||||
* @param string $Table
|
||||
* @return true
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function table($Label, $Table)
|
||||
{
|
||||
return self::send($Table, $Label, FirePHP::TABLE);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user