Пример #1
0
 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;
 }
Пример #2
0
 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;
 }
Пример #3
0
 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;
 }