runningUnitTests() || defined('IS_UNITTEST')){ return true; } if (!function_exists('app') || !app() || !app()->bound('config')) { return true; } if(!defined('RUN_UNIQID')){ define('RUN_UNIQID', uniqid()); } self::getCache()->put('trace_' . RUN_UNIQID, $this->data, 3600); $list = self::getCache()->get('trace_list', []); if (count($list) > 300) { array_shift($list); array_shift($list); } $list[] = RUN_UNIQID; self::getCache()->put('trace_list', $list, 3600); } /** * @return \Illuminate\Contracts\Cache\Repository */ static public function getCache() { if(app()->runningUnitTests() || defined('IS_UNITTEST')){ return new class { public function put($key, $value, $ttl = null) { return true; } public function get($key, $default = null) { return $default; } }; } return Cache::store(); } /** * 获取数据 * * @param $unid * @return mixed */ static public function getData($unid) { return self::getCache()->get('trace_' . $unid, []); } static public function getlist() { return self::getCache()->get('trace_list', []); } static public function getOb() { if (!self::$ob) { return self::$ob = new Trace(); } return self::$ob; } /** * 增加数据 * * @param string $name * @param mixed $data * @return Trace */ static public function addData($name, $data) { $ob = self::getOb(); $ob->data[$name] = $data; return $ob; } /** * 增加错误 * * @param mixed $data * @return Trace */ static public function addError($data) { $ob = self::getOb(); $ob->error[] = $data; return $ob; } /** * 追加数据 * @param $name * @param $data * @return Trace */ static public function applyData($name, $data) { $ob = self::getOb(); $ob->data[$name][] = $data; return $ob; } }