PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
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 2 years ago ComputedMetricFactory.php 2 years ago Dimension.php 1 month ago DimensionMetricFactory.php 1 year ago DimensionSegmentFactory.php 6 months ago DimensionsProvider.php 6 months ago Discriminator.php 2 years ago Join.php 2 years ago MetricsList.php 3 months ago Updater.php 3 months ago
Discriminator.php
67 lines
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 Exception;
12 /**
13 * @api
14 * @since 3.1.0
15 */
16 class Discriminator
17 {
18 private $table;
19 private $discriminatorColumn;
20 private $discriminatorValue;
21 /**
22 * Join constructor.
23 * @param string $table unprefixed table name
24 * @param null|string $discriminatorColumn
25 * @param null|int $discriminatorValue should be only hard coded, safe values.
26 * @throws Exception
27 */
28 public function __construct($table, $discriminatorColumn = null, $discriminatorValue = null)
29 {
30 if (empty($discriminatorColumn) || !isset($discriminatorValue)) {
31 throw new Exception('Both discriminatorColumn and discriminatorValue need to be defined');
32 }
33 $this->table = $table;
34 $this->discriminatorColumn = $discriminatorColumn;
35 $this->discriminatorValue = $discriminatorValue;
36 if (!$this->isValid()) {
37 // if adding another string value please post an event instead to get a list of allowed values
38 throw new Exception('$discriminatorValue needs to be null or numeric');
39 }
40 }
41 public function isValid()
42 {
43 return isset($this->discriminatorColumn) && is_numeric($this->discriminatorValue);
44 }
45 /**
46 * @return string
47 */
48 public function getTable()
49 {
50 return $this->table;
51 }
52 /**
53 * @return string
54 */
55 public function getColumn()
56 {
57 return $this->discriminatorColumn;
58 }
59 /**
60 * @return int|null
61 */
62 public function getValue()
63 {
64 return $this->discriminatorValue;
65 }
66 }
67