johnxx
August 29, 2022, 8:04am
1
Is there a way to get timing variables (e.g. [^qt^] Tag Syntax - Building Sites | MODX Documentation ), directly, inside a snippet ?
I think you can access the information from the $modx
instance ($modx->queryTime
, $modx->executedQueries
) but you have to do some of the calculations yourself:
$totalTime= (microtime(true) - $this->modx->startTime);
$queryTime= $this->modx->queryTime;
$queries= isset ($this->modx->executedQueries) ? $this->modx->executedQueries : 0;
$phpTime= $totalTime - $queryTime;
$queryTime= sprintf("%2.4f s", $queryTime);
$totalTime= sprintf("%2.4f s", $totalTime);
$phpTime= sprintf("%2.4f s", $phpTime);
$source= $this->modx->resourceGenerated ? "database" : "cache";
$memory = number_format(memory_get_usage(true) / 1024, 0,","," ") . ' kb';
$this->modx->resource->_output= str_replace("[^q^]", $queries, $this->modx->resource->_output);
$this->modx->resource->_output= str_replace("[^qt^]", $queryTime, $this->modx->resource->_output);
$this->modx->resource->_output= str_replace("[^p^]", $phpTime, $this->modx->resource->_output);
$this->modx->resource->_output= str_replace("[^t^]", $totalTime, $this->modx->resource->_output);
$this->modx->resource->_output= str_replace("[^s^]", $source, $this->modx->resource->_output);
$this->modx->resource->_output= str_replace("[^m^]", $memory, $this->modx->resource->_output);