Files
wp-multisite-waas/inc/database/engine/class-query.php
2025-02-07 19:02:33 -07:00

96 lines
1.8 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 \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;
}
parent::__construct($query);
}
/**
* Get the plural name.
*
* @since 2.0.0
* @return string
*/
public function get_plural_name() {
return $this->item_name_plural;
}
}