/** * Get from the cache * * @param string $id * @param string $group * @return mixed */ function get($id, $group = 'transient', $force = false, &$found = null) { if ($this->_debug) { $time_start = Util_Debug::microtime(); } $key = $this->_get_cache_key($id); list($fragment_group, $fragment_group_expiration, $fragment_group_global) = $this->_fragment_group($id, $group); $internal = isset($this->cache[$fragment_group][$key]); if ($internal) { $found = true; $value = $this->cache[$fragment_group][$key]; } elseif ($this->_caching && !in_array($group, $this->nonpersistent_groups)) { $cache = $this->_get_cache($fragment_group_global); $v = $cache->get($key, $fragment_group); if (is_array($v) && $v['content'] != null) { $found = true; $value = $v['content']; } else { $value = false; } } else { $value = false; } if ($value === null) { $value = false; } if (is_object($value)) { $value = clone $value; } $this->cache[$fragment_group][$key] = $value; $this->cache_total++; if ($value !== false) { $cached = true; $this->cache_hits++; } else { $cached = false; $this->cache_misses++; } /** * Add debug info */ if ($this->_debug) { $time = Util_Debug::microtime() - $time_start; $this->time_total += $time; if (!$group) { $group = 'transient'; } $this->debug_info[] = array('id' => $id, 'group' => $group, 'cached' => $cached, 'internal' => $internal, 'data_size' => $value ? strlen(serialize($value)) : '', 'time' => $time); } return $value; }
/** * Returns debug info * * @param boolean $cache * @param string $reason * @param boolean $status * @param double $time * @return string */ public function w3tc_footer_comment($strings) { $strings[] = sprintf(__('Page Caching using %s%s', 'w3-total-cache'), Cache::engine_name($this->_config->get_string('pgcache.engine')), $this->cache_reject_reason != '' ? sprintf(' (%s)', $this->cache_reject_reason) : ''); if ($this->_debug) { $time_total = Util_Debug::microtime() - $this->_time_start; $engine = $this->_config->get_string('pgcache.engine'); $strings[] = "Page cache debug info:"; $strings[] = sprintf("%s%s", str_pad('Engine: ', 20), Cache::engine_name($engine)); $strings[] = sprintf("%s%s", str_pad('Cache key: ', 20), $this->_page_key); if ($this->cache_reject_reason != '') { $strings[] = sprintf("%s%s", str_pad('Reject reason: ', 20), $this->cache_reject_reason); } $strings[] = sprintf("%s%.3fs", str_pad('Creation Time: ', 20), time()); $headers = $this->_get_response_headers(); if (count($headers)) { $strings[] = "Header info:"; foreach ($headers as $header_name => $header_value) { $strings[] = sprintf("%s%s", str_pad($header_name . ': ', 20), Util_Content::escape_comment($header_value)); } } } return $strings; }