xhprof: allow to configure xhprof root directory
authorAlexander Stintzing <a.stintzing@metaways.de>
Fri, 30 May 2014 10:24:41 +0000 (12:24 +0200)
committerPhilipp Schüle <p.schuele@metaways.de>
Fri, 30 May 2014 14:03:27 +0000 (16:03 +0200)
Change-Id: Ieee3ea03cf7f352b4046cb668df5db3e4643d602
Reviewed-on: http://gerrit.tine20.com/customers/703
Tested-by: Jenkins CI (http://ci.tine20.com/)
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Tinebase/Core.php

index 5d196f2..ff7e397 100644 (file)
@@ -275,10 +275,18 @@ class Tinebase_Core
         if (! self::getConfig() || ! self::getConfig()->profiler) {
             return;
         }
-
-        if (self::getConfig()->profiler->xhprof) {
-            Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Enabling xhprof');
-            xhprof_enable(XHPROF_FLAGS_MEMORY);
+        
+        $config = self::getConfig()->profiler;
+        
+        if ($config && $config->xhprof) {
+            $XHPROF_ROOT = $config->path ? $config->path : '/usr/share/php5-xhprof';
+            if (file_exists($XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php")) {
+                define('XHPROF_LIB_ROOT', $XHPROF_ROOT . '/xhprof_lib');
+                Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Enabling xhprof');
+                xhprof_enable(XHPROF_FLAGS_MEMORY);
+            } else {
+                Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Could not find xhprof lib root');
+            }
         } 
     }
 
@@ -308,15 +316,13 @@ class Tinebase_Core
             
             Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Saving xhprof profiling run for method ' . $method);
             
-            $XHPROF_ROOT = $config->path ? $config->path : '/usr/share/php5-xhprof';
-            if (file_exists($XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php")) {
-                define(XHPROF_LIB_ROOT, $XHPROF_ROOT . '/xhprof_lib');
-                include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
-                include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";
+            if (! defined('XHPROF_LIB_ROOT')) {
+                Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . '  ' . print_r($xhprof_data, TRUE));
+            } else {
+                include_once XHPROF_LIB_ROOT . "/utils/xhprof_lib.php";
+                include_once XHPROF_LIB_ROOT . "/utils/xhprof_runs.php";
                 $xhprof_runs = new XHProfRuns_Default();
                 $run_id = $xhprof_runs->save_run($xhprof_data, "tine");
-            } else {
-                Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . '  ' . print_r($xhprof_data, TRUE));
             }
         }
     }