public function query(Query $query)
{
if (empty($this->caches['query'])) {
return parent::query($query);
}
$this->assertLoggedIn();
$cacheKey = "query: {$query->getStatement()}, {$query->getLimit()}, {$query->getOffset()}, {$query->getLanguage()}, " . $this->workspaceName;
$cacheKey = $this->sanitizeKey($cacheKey);
if ($result = $this->caches['query']->fetch($cacheKey)) {
return $result;
}
$result = parent::query($query);
$this->caches['query']->save($cacheKey, $result);
return $result;
}