PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
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 / DimensionsProvider.php
matomo / app / core / Columns Last commit date
Join 6 years ago ComputedMetricFactory.php 6 years ago Dimension.php 6 years ago DimensionMetricFactory.php 6 years ago DimensionsProvider.php 6 years ago Discriminator.php 6 years ago Join.php 6 years ago MetricsList.php 6 years ago Updater.php 6 years ago
DimensionsProvider.php
62 lines
1 <?php
2 /**
3 * Piwik - 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 Piwik\CacheId;
12 use Piwik\Cache as PiwikCache;
13
14 class DimensionsProvider
15 {
16 /**
17 * @param $dimensionId
18 * @return Dimension
19 */
20 public function factory($dimensionId)
21 {
22 $listDimensions = self::getMapOfNameToDimension();
23
24 if (empty($listDimensions) || !is_array($listDimensions) || !$dimensionId || !array_key_exists($dimensionId, $listDimensions)) {
25 return null;
26 }
27
28 return $listDimensions[$dimensionId];
29 }
30
31 private static function getMapOfNameToDimension()
32 {
33 $cacheId = CacheId::siteAware(CacheId::pluginAware('DimensionFactoryMap'));
34
35 $cache = PiwikCache::getTransientCache();
36 if ($cache->contains($cacheId)) {
37 $mapIdToDimension = $cache->fetch($cacheId);
38 } else {
39 $dimensions = new static();
40 $dimensions = $dimensions->getAllDimensions();
41
42 $mapIdToDimension = array();
43 foreach ($dimensions as $dimension) {
44 $mapIdToDimension[$dimension->getId()] = $dimension;
45 }
46
47 $cache->save($cacheId, $mapIdToDimension);
48 }
49
50 return $mapIdToDimension;
51 }
52
53 /**
54 * Returns a list of all available dimensions.
55 * @return Dimension[]
56 */
57 public function getAllDimensions()
58 {
59 return Dimension::getAllDimensions();
60 }
61
62 }