PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.13.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.13.3
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 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Columns / Discriminator.php
matomo / app / core / Columns Last commit date
Join 5 years ago ComputedMetricFactory.php 5 years ago Dimension.php 3 years ago DimensionMetricFactory.php 5 years ago DimensionSegmentFactory.php 5 years ago DimensionsProvider.php 5 years ago Discriminator.php 4 years ago Join.php 5 years ago MetricsList.php 5 years ago Updater.php 5 years ago
Discriminator.php
74 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9 namespace Piwik\Columns;
10
11 use Exception;
12
13 /**
14 * @api
15 * @since 3.1.0
16 */
17 class Discriminator
18 {
19 private $table;
20 private $discriminatorColumn;
21 private $discriminatorValue;
22
23 /**
24 * Join constructor.
25 * @param string $table unprefixed table name
26 * @param null|string $discriminatorColumn
27 * @param null|int $discriminatorValue should be only hard coded, safe values.
28 * @throws Exception
29 */
30 public function __construct($table, $discriminatorColumn = null, $discriminatorValue = null)
31 {
32 if (empty($discriminatorColumn) || !isset($discriminatorValue)) {
33 throw new Exception('Both discriminatorColumn and discriminatorValue need to be defined');
34 }
35 $this->table = $table;
36 $this->discriminatorColumn = $discriminatorColumn;
37 $this->discriminatorValue = $discriminatorValue;
38
39 if (!$this->isValid()) {
40 // if adding another string value please post an event instead to get a list of allowed values
41 throw new Exception('$discriminatorValue needs to be null or numeric');
42 }
43 }
44
45 public function isValid()
46 {
47 return isset($this->discriminatorColumn) && is_numeric($this->discriminatorValue);
48 }
49
50 /**
51 * @return string
52 */
53 public function getTable()
54 {
55 return $this->table;
56 }
57
58 /**
59 * @return string
60 */
61 public function getColumn()
62 {
63 return $this->discriminatorColumn;
64 }
65
66 /**
67 * @return int|null
68 */
69 public function getValue()
70 {
71 return $this->discriminatorValue;
72 }
73 }
74