; } /** * Overriten logic of wp_db by processor. */ public function delete( $table, $where, $where_format = null ) { do_action( 'w3tc_db_delete', $table, $where, $where_format ); return $this->active_processor->delete( $table, $where, $where_format ); } /** * Overriten logic of wp_db by processor. */ public function init_charset() { return $this->active_processor->init_charset(); } /** * Overriten logic of wp_db by processor. */ public function set_charset( $dbh, $charset = null, $collate = null ) { return $this->active_processor->set_charset( $dbh, $charset, $collate ); } /** * Overriten logic of wp_db by processor. */ public function set_sql_mode( $modes = array() ) { return $this->active_processor->set_sql_mode( $modes ); } /** * Overriten logic of wp_db by processor. */ public function flush() { return $this->active_processor->flush(); } /** * Overriten logic of wp_db by processor. */ public function check_database_version( $dbh_or_table = false ) { return $this->active_processor->check_database_version( $dbh_or_table ); } /** * Overriten logic of wp_db by processor. */ public function supports_collation( $dbh_or_table = false ) { return $this->active_processor->supports_collation( $dbh_or_table ); } /** * Overriten logic of wp_db by processor. */ public function has_cap( $db_cap, $dbh_or_table = false ) { return $this->active_processor->has_cap( $db_cap, $dbh_or_table ); } /** * Overriten logic of wp_db by processor. */ public function db_version( $dbh_or_table = false ) { return $this->active_processor->db_version( $dbh_or_table ); } /** * Default initialization method, calls wp_db apropriate method */ public function default_initialize() { parent::__construct( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST ); } /** * Default implementation, calls wp_db apropriate method */ public function default_insert( $table, $data, $format = null ) { return parent::insert( $table, $data, $format ); } /** * Default implementation, calls wp_db apropriate method */ public function default_query( $query ) { return parent::query( $query ); } public function default__escape( $data ) { return parent::_escape( $data ); } /** * Default implementation, calls wp_db apropriate method */ public function default_prepare( $query, $args ) { return parent::prepare( $query, ...$args ); } /** * Default implementation, calls wp_db apropriate method */ public function default_replace( $table, $data, $format = null ) { return parent::replace( $table, $data, $format ); } /** * Default implementation, calls wp_db apropriate method */ public function default_update( $table, $data, $where, $format = null, $where_format = null ) { return parent::update( $table, $data, $where, $format, $where_format ); } /** * Default implementation, calls wp_db apropriate method */ public function default_delete( $table, $where, $where_format = null ) { return parent::delete( $table, $where, $where_format ); } /** * Default implementation, calls wp_db apropriate method */ public function default_init_charset() { return parent::init_charset(); } /** * Default implementation, calls wp_db apropriate method */ public function default_set_charset( $dbh, $charset = null, $collate = null ) { return parent::set_charset( $dbh, $charset, $collate ); } /** * Default implementation, calls wp_db apropriate method */ public function default_set_sql_mode( $modes = array() ) { return parent::set_sql_mode( $modes ); } /** * Default implementation, calls wp_db apropriate method */ public function default_flush() { return parent::flush(); } /** * Default implementation, calls wp_db apropriate method */ public function default_check_database_version( $dbh_or_table = false ) { return parent::check_database_version( $dbh_or_table ); } /** * Default implementation, calls wp_db apropriate method */ public function default_supports_collation( $dbh_or_table = false ) { return parent::supports_collation( $dbh_or_table ); } /** * Default implementation, calls wp_db apropriate method */ public function default_has_cap( $db_cap, $dbh_or_table = false ) { return parent::has_cap( $db_cap, $dbh_or_table ); } /** * Default implementation, calls wp_db apropriate method */ public function default_db_version( $dbh_or_table = false ) { return parent::db_version( $dbh_or_table ); } /** * Default implementation, calls wp_db apropriate method */ public function switch_active_processor( $offset ) { $new_processor_number = $this->active_processor_number + $offset; if ( $new_processor_number <= 0 ) { $new_processor_number = 0; } else if ( $new_processor_number >= count( $this->processors ) ) { $new_processor_number = count( $this->processors ) - 1; } $offset_made = $new_processor_number - $this->active_processor_number; $this->active_processor_number = $new_processor_number; $this->active_processor = $this->processors[$new_processor_number]; return $offset_made; } } /** * class CallUnderlying */ class _CallUnderlying { function __construct( $manager ) { $this->wpdb_mixin = $manager; } /** * Calls underlying processor's aproptiate method of wp_db */ function initialize() { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->initialize(); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } /** * Calls underlying processor's aproptiate method of wp_db */ function flush() { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->flush(); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } /** * Calls underlying processor's aproptiate method of wp_db */ function query( $query ) { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->query( $query ); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } /** * Calls underlying processor's aproptiate method of wp_db */ function _escape( $data ) { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->_escape( $data ); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } /** * Calls underlying processor's aproptiate method of wp_db */ function prepare( $query, $args ) { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->prepare( $query, ...$args ); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } /** * Calls underlying processor's aproptiate method of wp_db */ function insert( $table, $data, $format = null ) { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->insert( $table, $data, $format ); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } /** * Calls underlying processor's aproptiate method of wp_db */ function replace( $table, $data, $format = null ) { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->replace( $table, $data, $format ); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } /** * Calls underlying processor's aproptiate method of wp_db */ function update( $table, $data, $where, $format = null, $where_format = null ) { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->update( $table, $data, $where, $format, $where_format ); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } function delete( $table, $where, $where_format = null ) { $switched = $this->wpdb_mixin->switch_active_processor( 1 ); try { $r = $this->wpdb_mixin->delete( $table, $where, $where_format ); $this->wpdb_mixin->switch_active_processor( -$switched ); return $r; } catch ( \Exception $e ) { $this->wpdb_mixin->switch_active_processor( -$switched ); throw $e; } } }