1.先写一个统计方法调用路径的方法
/**
* @desc: 统计方法调用路径
* @date: 2021-11-9
*/
public function statisticsAllFunctionPath()
{
//连接redis
$redis = ZFactory::getRedis('***Redis');
$redis_key = "FunctionPath";
//记录场景路径
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
$trace_path = "";
foreach ($backtrace as $key => $trace){
if($key == 0){
$trace_path = $trace['function'];
}else{
$trace_path = $trace_path.'-'.$trace['function'];
}
}
//md5字符串路径过滤 hash排除重复数据
$hash_key = md5($trace_path);
if(!$redis->hExists($redis_key, $hash_key)){
//不存在 则插入hash值
$redis->hSet($redis_key, $hash_key, $trace_path);
}
if($_COOKIE['test'] == 2){
echo "<pre>";
var_dump($redis_key);echo "<br>";echo "<br>"; //输出:FunctionPath
var_dump($hash_key);echo "<br>";echo "<br>"; //输出:e2806d650d6a13384f412fce61196a1a
var_dump($trace_path);echo "<br>";echo "<br>"; //输出:sta********eplinkScene-c*******k-generateShareUrl-displayT6-display-call_user_func_array-call*****d-execute-renderComponent-dispatch
exit();
}
return true;
}
2.在需要统计的地方,调用统计方法路径方法
public function createDeeplink()
{
...
...
//调用统计方法调用路径方法
$testModel = new TestModel();
$testModel->statisticsAllFunctionPath();
...
...
}
3.打印 redis 收集到的数据,根据收集到的数据反推出接口url
/*
string(13) "所有数据:"
array(8) {
["e2806d650d6a13384f412fce61196a1a"]=>string(138) "sta********eplinkScene-c*******k-generateShareUrl-displayT6-display-call_user_func_array-call*****d-execute-renderComponent-dispatch"
}
根据以上数据可以反推出接口url:/index.php?com=test&t=display
*/