From 868f6c90b9e89e4e3e3ea65a529bde4bc038d74d Mon Sep 17 00:00:00 2001 From: rMalie Date: Tue, 29 Nov 2011 13:10:35 +0000 Subject: [PATCH] [+] Classes: add ObjectModel debug in overrides classes --- override/classes/_FrontController.php | 30 +++++++++++++++++++++++++++ override/classes/_ObjectModel.php | 28 +++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 override/classes/_ObjectModel.php diff --git a/override/classes/_FrontController.php b/override/classes/_FrontController.php index 759031c8e..1b522efdd 100755 --- a/override/classes/_FrontController.php +++ b/override/classes/_FrontController.php @@ -148,6 +148,15 @@ class FrontController extends FrontControllerCore return 'style="color:green"'; } + private function getObjectModelColor($n) + { + if ($n > 50) + return 'style="color:red"'; + if ($n > 10) + return 'style="color:orange"'; + return 'style="color:green"'; + } + public function __construct() { parent::__construct(); @@ -348,6 +357,7 @@ class FrontController extends FrontControllerCore
  • Go to Stopwatch
  • Go to Doubles
  • Go to Tables
  • + '.(isset(ObjectModel::$debug_list) ? '
  • Go to ObjectModels
  • ' : '').'
    @@ -370,5 +380,25 @@ class FrontController extends FrontControllerCore foreach ($tables as $table => $nb) echo $hr.'getTableColor($nb).'>'.$nb.' '.$table; echo '
    '; + + if (isset(ObjectModel::$debug_list)) + { + echo '
    +

    ObjectModel instances

    '; + $list = ObjectModel::$debug_list; + uasort($list, create_function('$a,$b', 'return (count($a) < count($b)) ? 1 : -1;')); + $i = 0; + foreach ($list as $class => $info) + { + echo $hr.'getObjectModelColor(count($info)).'>'.count($info).' '; + echo ''.$class.''; + echo ''; + $i++; + } + echo '
    '; + } } } diff --git a/override/classes/_ObjectModel.php b/override/classes/_ObjectModel.php new file mode 100644 index 000000000..d8396baef --- /dev/null +++ b/override/classes/_ObjectModel.php @@ -0,0 +1,28 @@ + $row) + if (!isset($backtrace[$trace_id]['class']) || !in_array($backtrace[$trace_id]['class'], $class_list)) + break; + $trace_id--; + + self::$debug_list[$classname][] = array( + 'file' => @$backtrace[$trace_id]['file'], + 'line' => @$backtrace[$trace_id]['line'], + ); + } +} +