public static function call($method, $url, $data, &$result) { if (Debugger::$enabled) { $time = microtime(true); } $ch = curl_init(); if (static::$cookies) { $cookieJar = tempnam(sys_get_temp_dir(), "curl_cookies-"); if (isset($_SESSION['curl_cookies'])) { file_put_contents($cookieJar, $_SESSION['curl_cookies']); } curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieJar); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieJar); } static::setOptions($ch, $method, $url, $data); $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); if (Debugger::$enabled) { $timing = array(); $timing['name_lookup'] = curl_getinfo($ch, CURLINFO_NAMELOOKUP_TIME); $timing['connect'] = curl_getinfo($ch, CURLINFO_CONNECT_TIME); $timing['pre_transfer'] = curl_getinfo($ch, CURLINFO_PRETRANSFER_TIME); $timing['start_transfer'] = curl_getinfo($ch, CURLINFO_STARTTRANSFER_TIME); $timing['redirect'] = curl_getinfo($ch, CURLINFO_REDIRECT_TIME); $timing['total'] = curl_getinfo($ch, CURLINFO_TOTAL_TIME); } curl_close($ch); if (static::$cookies) { $_SESSION['curl_cookies'] = file_get_contents($cookieJar); unlink($cookieJar); } else { unset($_SESSION['curl_cookies']); } if (Debugger::$enabled) { $duration = microtime(true) - $time; $options = static::$options; $headers = static::$headers; Debugger::add('api_calls', compact('duration', 'method', 'url', 'data', 'options', 'headers', 'status', 'timing', 'result')); } return $status; }
public static function set($key, $var, $expire = 0) { if (Debugger::$enabled) { $time = microtime(true); } if (!static::$memcache) { static::initialize(); } $res = static::$memcache->set(static::$prefix . $key, $var, 0, $expire); if (Debugger::$enabled) { $duration = microtime(true) - $time; $command = 'set'; $arguments = array($key, static::variable($var)); if ($expire) { $arguments[] = $expire; } $result = static::variable($res); Debugger::add('cache', compact('duration', 'command', 'arguments', 'result')); } return $res; }
private static function selectTyped($query) { if (!Debugger::$enabled) { return forward_static_call_array('DB::selectTypedInternal', func_get_args()); } $time = microtime(true); $result = forward_static_call_array('DB::selectTypedInternal', func_get_args()); $duration = microtime(true) - $time; $arguments = func_get_args(); if (strtoupper(substr(trim($query), 0, 6)) == 'SELECT') { $arguments[0] = 'explain ' . $query; $explain = forward_static_call_array('DB::selectTypedInternal', $arguments); } else { $explain = false; } $arguments = array_slice(func_get_args(), 2); $equery = static::$mysqli->real_escape_string($query); Debugger::add('queries', compact('duration', 'query', 'equery', 'arguments', 'result', 'explain')); return $result; }