From 9110b52b650ef542e75012f6727f56e545095bcf Mon Sep 17 00:00:00 2001 From: midoks Date: Wed, 30 Sep 2020 02:22:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9php5.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/xhprof_lib/utils/xhprof_runs.php | 181 +++++++++--------- 1 file changed, 92 insertions(+), 89 deletions(-) diff --git a/plugins/xhprof/lib/xhprof_lib/utils/xhprof_runs.php b/plugins/xhprof/lib/xhprof_lib/utils/xhprof_runs.php index 01e9d069f..7af62a966 100755 --- a/plugins/xhprof/lib/xhprof_lib/utils/xhprof_runs.php +++ b/plugins/xhprof/lib/xhprof_lib/utils/xhprof_runs.php @@ -31,31 +31,30 @@ */ interface iXHProfRuns { - /** - * Returns XHProf data given a run id ($run) of a given - * type ($type). - * - * Also, a brief description of the run is returned via the - * $run_desc out parameter. - */ - public function get_run($run_id, $type, &$run_desc); - - /** - * Save XHProf data for a profiler run of specified type - * ($type). - * - * The caller may optionally pass in run_id (which they - * promise to be unique). If a run_id is not passed in, - * the implementation of this method must generated a - * unique run id for this saved XHProf run. - * - * Returns the run id for the saved XHProf run. - * - */ - public function save_run($xhprof_data, $type, $run_id = null); + /** + * Returns XHProf data given a run id ($run) of a given + * type ($type). + * + * Also, a brief description of the run is returned via the + * $run_desc out parameter. + */ + public function get_run($run_id, $type, &$run_desc); + + /** + * Save XHProf data for a profiler run of specified type + * ($type). + * + * The caller may optionally pass in run_id (which they + * promise to be unique). If a run_id is not passed in, + * the implementation of this method must generated a + * unique run id for this saved XHProf run. + * + * Returns the run id for the saved XHProf run. + * + */ + public function save_run($xhprof_data, $type, $run_id = null); } - /** * XHProfRuns_Default is the default implementation of the * iXHProfRuns interface for saving/fetching XHProf runs. @@ -67,98 +66,102 @@ interface iXHProfRuns { */ class XHProfRuns_Default implements iXHProfRuns { - private $dir = ''; - private $suffix = 'xhprof'; + private $dir = ''; + private $suffix = 'xhprof'; - private function gen_run_id($type) { - return uniqid(); - } + private function gen_run_id($type) { + return uniqid(); + } - private function file_name($run_id, $type) { + private function file_name($run_id, $type) { - $file = "$run_id.$type." . $this->suffix; + $file = "$run_id.$type." . $this->suffix; - if (!empty($this->dir)) { - $file = $this->dir . "/" . $file; + if (!empty($this->dir)) { + $file = $this->dir . "/" . $file; + } + return $file; } - return $file; - } - public function __construct($dir = null) { + public function __construct($dir = null) { - // if user hasn't passed a directory location, - // we use the xhprof.output_dir ini setting - // if specified, else we default to the directory - // in which the error_log file resides. + // if user hasn't passed a directory location, + // we use the xhprof.output_dir ini setting + // if specified, else we default to the directory + // in which the error_log file resides. - if (empty($dir)) { - $dir = ini_get("xhprof.output_dir"); - if (empty($dir)) { + if (empty($dir)) { + $dir = ini_get("xhprof.output_dir"); + if (empty($dir)) { - $dir = sys_get_temp_dir(); + $dir = sys_get_temp_dir(); - xhprof_error("Warning: Must specify directory location for XHProf runs. ". - "Trying {$dir} as default. You can either pass the " . - "directory location as an argument to the constructor ". - "for XHProfRuns_Default() or set xhprof.output_dir ". - "ini param."); - } + xhprof_error("Warning: Must specify directory location for XHProf runs. " . + "Trying {$dir} as default. You can either pass the " . + "directory location as an argument to the constructor " . + "for XHProfRuns_Default() or set xhprof.output_dir " . + "ini param."); + } + } + $this->dir = $dir; } - $this->dir = $dir; - } - public function get_run($run_id, $type, &$run_desc) { - $file_name = $this->file_name($run_id, $type); + public function get_run($run_id, $type, &$run_desc) { + $file_name = $this->file_name($run_id, $type); + + if (!file_exists($file_name)) { + xhprof_error("Could not find file $file_name"); + $run_desc = "Invalid Run Id = $run_id"; + return null; + } - if (!file_exists($file_name)) { - xhprof_error("Could not find file $file_name"); - $run_desc = "Invalid Run Id = $run_id"; - return null; + $contents = file_get_contents($file_name); + $run_desc = "XHProf Run (Namespace=$type)"; + return unserialize($contents); } - $contents = file_get_contents($file_name); - $run_desc = "XHProf Run (Namespace=$type)"; - return unserialize($contents); - } + public function save_run($xhprof_data, $type, $run_id = null) { - public function save_run($xhprof_data, $type, $run_id = null) { + // Use PHP serialize function to store the XHProf's + // raw profiler data. + $xhprof_data = serialize($xhprof_data); - // Use PHP serialize function to store the XHProf's - // raw profiler data. - $xhprof_data = serialize($xhprof_data); + if ($run_id === null) { + $run_id = $this->gen_run_id($type); + } - if ($run_id === null) { - $run_id = $this->gen_run_id($type); - } + $file_name = $this->file_name($run_id, $type); + $file = fopen($file_name, 'w'); - $file_name = $this->file_name($run_id, $type); - $file = fopen($file_name, 'w'); + if ($file) { + fwrite($file, $xhprof_data); + fclose($file); + } else { + xhprof_error("Could not open $file_name\n"); + } + + // echo "Saved run in {$file_name}.\nRun id = {$run_id}.\n"; + return $run_id; + } - if ($file) { - fwrite($file, $xhprof_data); - fclose($file); - } else { - xhprof_error("Could not open $file_name\n"); + function list_runs_callback($a, $b) { + return filemtime($b) - filemtime($a); } - // echo "Saved run in {$file_name}.\nRun id = {$run_id}.\n"; - return $run_id; - } - - function list_runs() { - if (is_dir($this->dir)) { - echo "
Existing runs:\n\n"; } - } }