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 '
+
';
+ $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 '
';
+ foreach ($info as $trace)
+ echo ltrim(str_replace(array(_PS_ROOT_DIR_, '\\'), array('', '/'), $trace['file']), '/').' ['.$trace['line'].']
';
+ 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'],
+ );
+ }
+}
+