PluginProbe
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.1.6
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.1.6
5.13.0 5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 All 83 releases
matomo / app / core / Columns / ComputedMetricFactory.php
ComputedMetricFactory.php
48 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\Columns;
10
11 use Piwik\Plugin\ArchivedMetric;
12 use Piwik\Plugin\ComputedMetric;
13 /**
14 * A factory to create computed metrics.
15 *
16 * @api since Piwik 3.2.0
17 */
18 class ComputedMetricFactory
19 {
20 /**
21 * @var MetricsList
22 */
23 private $metricsList = null;
24 /**
25 * Generates a new report metric factory.
26 * @param MetricsList $list A report list instance
27 * @ignore
28 */
29 public function __construct(\Piwik\Columns\MetricsList $list)
30 {
31 $this->metricsList = $list;
32 }
33 /**
34 * @return \Piwik\Plugin\ComputedMetric
35 */
36 public function createComputedMetric($metricName1, $metricName2, $aggregation)
37 {
38 $metric1 = $this->metricsList->getMetric($metricName1);
39 if (!$metric1 instanceof ArchivedMetric || !$metric1->getDimension()) {
40 throw new \Exception('Only possible to create computed metric for an archived metric with a dimension');
41 }
42 $dimension1 = $metric1->getDimension();
43 $metric = new ComputedMetric($metricName1, $metricName2, $aggregation);
44 $metric->setCategory($dimension1->getCategoryId());
45 return $metric;
46 }
47 }
48