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 / Tracker / Visit / VisitProperties.php
matomo / app / core / Tracker / Visit Last commit date
Factory.php 2 years ago ReferrerSpamFilter.php 3 months ago VisitProperties.php 1 month ago
VisitProperties.php
117 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 public function setProperty($name, $value) : void
62 {
63 $this->visitInfo[$name] = $value;
64 }
65 /**
66 * Unsets all visit properties.
67 */
68 public function clearProperties() : void
69 {
70 $this->visitInfo = [];
71 }
72 /**
73 * Sets all visit properties.
74 *
75 * @param array $properties
76 */
77 public function setProperties(array $properties) : void
78 {
79 $this->visitInfo = $properties;
80 }
81 /**
82 * Set the initial values of a property.
83 * The immutable value remains unchanged throughout request processing and can be access with getImmutableProperty()
84 * The mutable value can be updated at any time with setProperty() and accessed via getProperty()
85 *
86 * @param mixed $value
87 */
88 public function initializeProperty(string $name, $value) : void
89 {
90 if (isset($this->visitInfoImmutableProperties[$name])) {
91 throw new \Exception(sprintf('The property %s has already been initialized', $name));
92 }
93 $this->visitInfoImmutableProperties[$name] = $value;
94 $this->setProperty($name, $value);
95 }
96 /**
97 * Returns a visit property, unmodified by request processors. Returns `null` if not set.
98 *
99 * @param string $name The property name.
100 *
101 * @return mixed|null
102 */
103 public function getImmutableProperty(string $name)
104 {
105 return $this->visitInfoImmutableProperties[$name] ?? null;
106 }
107 /**
108 * Returns all immutable visit properties
109 *
110 * @return array
111 */
112 public function getImmutableProperties() : array
113 {
114 return $this->visitInfoImmutableProperties;
115 }
116 }
117