/**
  Executes the needed operator(s).
  Checks operator names, and calls the appropriate functions.
 */
 function modify($tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters)
 {
     switch ($operatorName) {
         case 'xhprof_start':
             eZXHProfLogger::start($namedParameters['flags'], $namedParameters['options']);
             $operatorValue = null;
             break;
         case 'xhprof_stop':
             eZXHProfLogger::stop($namedParameters['dosave']);
             $operatorValue = null;
             break;
         case 'record_value':
             eZPerfLogger::recordValue($namedParameters['name'], $operatorValue);
             $operatorValue = null;
             break;
         case 'make_global':
             /// @todo investigate: shal we use copy if $operatorValue is an object?
             $GLOBALS[$namedParameters['name']] = $namedParameters['value'];
             $operatorValue = null;
     }
 }
<?php

// This is a sample of php code which can be added at the start of your
// config.php file to activate profiling with XHPROF.
// Profiling of a web page will only be triggered when the url used to acces it
// contains in the query string ?STARTXHPROF=1
//
// NOTE: maybe it is not a good idea to use this code in production: you would be giving your end users the possibility to slow down
// your site and fill your hard disk just by using a "hacked" url.
//
// Another useful workflow could be to enable profiling on 1 page every 100, using a random-variable test.
// This way you would be able to get statistically useful data from real-life users while avoiding slowing down every sigle page
if (isset($_GET['STARTXHPROF'])) {
    /// NB: php class autoloading is not yet set up at this point
    include 'extension/ezperformancelogger/classes/ezxhproflogger.php';
    eZXHProfLogger::start();
}