PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.8.0
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.8.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 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 / Tracker / Visit / VisitProperties.php
matomo / app / core / Tracker / Visit Last commit date
Factory.php 2 years ago ReferrerSpamFilter.php 5 months ago VisitProperties.php 5 months ago
VisitProperties.php
121 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\Tracker\Visit;
10
11 /**
12 * Holds temporary data for tracking requests.
13 */
14 class VisitProperties
15 {
16 /**
17 * Information about the current visit. This array holds the column values that will be inserted or updated
18 * in the `log_visit` table, or the values for the last known visit of the current visitor. These properties
19 * can be modified during request processing.
20 *
21 * @var array
22 */
23 private $visitInfo = [];
24 /**
25 * Holds the initial visit properties information about the current visit, this data is not changed during request processing.
26 *
27 * @var array
28 */
29 private $visitInfoImmutableProperties = [];
30 public function __construct(array $visitInfo = [])
31 {
32 $this->visitInfo = $visitInfo;
33 $this->visitInfoImmutableProperties = $visitInfo;
34 }
35 /**
36 * Returns a visit property, or `null` if none is set.
37 *
38 * @param string $name The property name.
39 *
40 * @return mixed
41 */
42 public function getProperty($name)
43 {
44 return isset($this->visitInfo[$name]) ? $this->visitInfo[$name] : null;
45 }
46 /**
47 * Returns all visit properties by reference.
48 *
49 * @return array
50 */
51 public function &getProperties() : array
52 {
53 return $this->visitInfo;
54 }
55 /**
56 * Sets a visit property.
57 *
58 * @param string $name The property name.
59 * @param mixed $value The property value.
60 *
61 */
62 public function setProperty($name, $value) : void
63 {
64 $this->visitInfo[$name] = $value;
65 }
66 /**
67 * Unsets all visit properties.
68 *
69 */
70 public function clearProperties() : void
71 {
72 $this->visitInfo = [];
73 }
74 /**
75 * Sets all visit properties.
76 *
77 * @param array $properties
78 *
79 */
80 public function setProperties(array $properties) : void
81 {
82 $this->visitInfo = $properties;
83 }
84 /**
85 * Set the initial values of a property.
86 * The immutable value remains unchanged throughout request processing and can be access with getImmutableProperty()
87 * The mutable value can be updated at any time with setProperty() and accessed via getProperty()
88 *
89 * @param mixed $value
90 *
91 */
92 public function initializeProperty(string $name, $value) : void
93 {
94 if (isset($this->visitInfoImmutableProperties[$name])) {
95 throw new \Exception(sprintf('The property %s has already been initialized', $name));
96 }
97 $this->visitInfoImmutableProperties[$name] = $value;
98 $this->setProperty($name, $value);
99 }
100 /**
101 * Returns a visit property, unmodified by request processors. Returns `null` if not set.
102 *
103 * @param string $name The property name.
104 *
105 * @return mixed|null
106 */
107 public function getImmutableProperty(string $name)
108 {
109 return $this->visitInfoImmutableProperties[$name] ?? null;
110 }
111 /**
112 * Returns all immutable visit properties
113 *
114 * @return array
115 */
116 public function getImmutableProperties() : array
117 {
118 return $this->visitInfoImmutableProperties;
119 }
120 }
121