Files
wp-multisite-waas/inc/database/engine/class-query.php
2024-11-30 18:24:12 -07:00

101 lines
1.9 KiB
PHP

<?php
/**
* Base Custom Database Table Query Class.
*/
namespace WP_Ultimo\Database\Engine;
// Exit if accessed directly
defined('ABSPATH') || exit;
/**
* The base class that all other database base classes extend.
*
* This class attempts to provide some universal immutability to all other
* classes that extend it, starting with a magic getter, but likely expanding
* into a magic call handler and others.
*
* @since 1.0.0
*/
class Query extends \WP_Ultimo\Dependencies\BerlinDB\Database\Query {
/**
* The prefix for the custom table.
*
* @since 2.0.0
* @var string
*/
protected $prefix = 'wu';
/**
* If we should use a global cache group.
*
* @since 2.1.2
* @var bool
*/
protected $global_cache = false;
/**
* Keep track of the global cache groups we've added.
* This is to prevent adding the same group multiple times.
*
* @since 2.1.2
* @var array
*/
protected static $added_globals = array();
/**
* Plural version for a group of items.
*
* @since 2.0.0
* @access public
* @var string
*/
protected $item_name_plural;
/**
* Group to cache queries and queried items in.
*
* @since 2.0.0
* @access public
* @var string
*/
protected $cache_group = 'sites';
/**
* The class constructor
*
* @since 2.1.2
* @param string|array $query Optional. An array or string of Query parameters.
* @return void
*/
public function __construct($query = array()) {
$cache_group = $this->apply_prefix($this->cache_group, '-');
if ($this->global_cache && !in_array($cache_group, self::$added_globals, true)) {
wp_cache_add_global_groups(array($cache_group));
self::$added_globals[] = $cache_group;
} // end if;
parent::__construct($query);
} // end __construct;
/**
* Get the plural name.
*
* @since 2.0.0
* @return string
*/
public function get_plural_name() {
return $this->item_name_plural;
} // end get_plural_name;
} // end class Query;