get_boolean( 'dbcache.enabled' ) ) { add_filter( 'w3tc_usage_statistics_summary_from_history', array( $this, 'w3tc_usage_statistics_summary_from_history' ), 10, 2 ); add_filter( 'w3tc_errors', array( $this, 'w3tc_errors' ) ); } } public function w3tc_usage_statistics_summary_from_history( $summary, $history ) { // counters $dbcache_calls_total = Util_UsageStatistics::sum( $history, 'dbcache_calls_total' ); $dbcache_calls_hits = Util_UsageStatistics::sum( $history, 'dbcache_calls_hits' ); $dbcache_flushes = Util_UsageStatistics::sum( $history, 'dbcache_flushes' ); $dbcache_time_ms = Util_UsageStatistics::sum( $history, 'dbcache_time_ms' ); $c = Dispatcher::config(); $e = $c->get_string( 'dbcache.engine' ); $summary['dbcache'] = array( 'calls_total' => Util_UsageStatistics::integer( $dbcache_calls_total ), 'calls_per_second' => Util_UsageStatistics::value_per_period_seconds( $dbcache_calls_total, $summary ), 'flushes' => Util_UsageStatistics::integer( $dbcache_flushes ), 'time_ms' => Util_UsageStatistics::integer( $dbcache_time_ms ), 'hit_rate' => Util_UsageStatistics::percent( $dbcache_calls_hits, $dbcache_calls_total ), 'engine_name' => Cache::engine_name( $e ) ); return $summary; } public function w3tc_errors( $errors ) { $c = Dispatcher::config(); if ( $c->get_string( 'dbcache.engine' ) == 'memcached' ) { $memcached_servers = $c->get_array( 'dbcache.memcached.servers' ); $memcached_binary_protocol = $c->get_boolean( 'dbcache.memcached.binary_protocol' ); $memcached_username = $c->get_string( 'dbcache.memcached.username' ); $memcached_password = $c->get_string( 'dbcache.memcached.password' ); if ( !Util_Installed::is_memcache_available( $memcached_servers, $memcached_binary_protocol, $memcached_username, $memcached_password ) ) { if ( !isset( $errors['memcache_not_responding.details'] ) ) $errors['memcache_not_responding.details'] = array(); $errors['memcache_not_responding.details'][] = sprintf( __( 'Database Cache: %s.', 'w3-total-cache' ), implode( ', ', $memcached_servers ) ); } } return $errors; } }