PluginProbe
VikBooking Hotel Booking Engine & PMS / trunk
VikBooking Hotel Booking Engine & PMS vtrunk
1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 All 36 releases
vikbooking / admin / helpers / src / rms / pace / data / metric.php

metric.php in VikBooking Hotel Booking Engine & PMS trunk, at admin/helpers/src/rms/pace/data/metric.php

115 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package VikBooking
4 * @subpackage core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2025 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 /**
15 * RMS Pace Data Metric abstract implementation.
16 *
17 * @since 1.18.6 (J) - 1.8.6 (WP)
18 */
19 abstract class VBORmsPaceDataMetric
20 {
21 /**
22 * @var ?array
23 */
24 protected ?array $options = null;
25
26 /**
27 * @var mixed
28 */
29 protected $metric = null;
30
31 /**
32 * Class constructor.
33 *
34 * @param ?array $options Optional settings to follow.
35 */
36 public function __construct(?array $options = null)
37 {
38 // bind optional options
39 $this->options = $options;
40 }
41
42 /**
43 * Returns the identifier value of the current data metric.
44 *
45 * @return string
46 */
47 public function getID()
48 {
49 return preg_replace('/^VBORmsPaceDataMetric/i', '', strtolower(get_class($this)));
50 }
51
52 /**
53 * Returns the requested option by key.
54 *
55 * @param string $key The option identifier to get.
56 *
57 * @return mixed Current option value or default value.
58 */
59 public function get(string $key, $default = null)
60 {
61 return $this->options[$key] ?? $default;
62 }
63
64 /**
65 * Sets the requested option key and value.
66 *
67 * @param string $key The option identifier to set.
68 * @param mixed $value The option value to set.
69 *
70 * @return self
71 */
72 public function set(string $key, $value)
73 {
74 $this->options[$key] = $value;
75
76 return $this;
77 }
78
79 /**
80 * Returns the previously calculated metric.
81 *
82 * @return mixed The cached metric value, if any.
83 */
84 public function getMetric()
85 {
86 return $this->metric;
87 }
88
89 /**
90 * Sets the calculated metric value.
91 *
92 * @param mixed $value The calculated metric value to cache.
93 *
94 * @return self
95 */
96 public function setMetric($value)
97 {
98 $this->metric = $value;
99
100 return $this;
101 }
102
103 /**
104 * Extracts the metric from the given pace data-period containing the bookings and current metrics.
105 *
106 * @param VBORmsPaceDataperiod $paceDataPeriod The pace data-period object to iterate.
107 * @param array $periodPaceMetrics The currently set pace data metrics so far.
108 *
109 * @return mixed The calculated data metric value.
110 *
111 * @throws Exception
112 */
113 abstract public function extract(VBORmsPaceDataperiod $paceDataPeriod, ?array $periodPaceMetrics = null);
114 }
115