PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Statistics / Intervals / Intervals.php
independent-analytics / IAWP / Statistics / Intervals Last commit date
Daily.php 2 years ago Hourly.php 2 years ago Interval.php 2 years ago Intervals.php 2 years ago Monthly.php 2 years ago Weekly.php 2 years ago
Intervals.php
48 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Statistics\Intervals;
4
5 /** @internal */
6 class Intervals
7 {
8 /**
9 * @return Interval[]
10 */
11 public static function all() : array
12 {
13 return [new Hourly(), new Daily(), new Weekly(), new Monthly()];
14 }
15 /**
16 * Find an interval by its id. Will return the default interval if provided id is invalid.
17 *
18 * @param string|null $interval_id
19 *
20 * @return Interval
21 */
22 public static function find_by_id(?string $interval_id) : Interval
23 {
24 foreach (self::all() as $interval) {
25 if ($interval->id() === $interval_id) {
26 return $interval;
27 }
28 }
29 return new Daily();
30 }
31 public static function default_for(int $days) : Interval
32 {
33 if ($days <= 3) {
34 return new Hourly();
35 } elseif ($days <= 84) {
36 return new Daily();
37 } elseif ($days <= 182) {
38 return new Weekly();
39 } else {
40 return new Monthly();
41 }
42 }
43 // public static function create_interval(?string $interval_id): Interval
44 // {
45 // // Switch case...
46 // }
47 }
48