PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.30.0
Independent Analytics – WordPress Analytics Plugin v1.30.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 3 years ago Hourly.php 3 years ago Interval.php 3 years ago Intervals.php 3 years ago Monthly.php 3 years ago Weekly.php 3 years ago
Intervals.php
47 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Statistics\Intervals;
4
5 class Intervals
6 {
7 /**
8 * @return Interval[]
9 */
10 public static function all() : array
11 {
12 return [new Hourly(), new Daily(), new Weekly(), new Monthly()];
13 }
14 /**
15 * Find an interval by its id. Will return the default interval if provided id is invalid.
16 *
17 * @param string|null $interval_id
18 *
19 * @return Interval
20 */
21 public static function find_by_id(?string $interval_id) : Interval
22 {
23 foreach (self::all() as $interval) {
24 if ($interval->id() === $interval_id) {
25 return $interval;
26 }
27 }
28 return new Daily();
29 }
30 public static function default_for(int $days) : Interval
31 {
32 if ($days <= 3) {
33 return new Hourly();
34 } elseif ($days <= 84) {
35 return new Daily();
36 } elseif ($days <= 182) {
37 return new Weekly();
38 } else {
39 return new Monthly();
40 }
41 }
42 // public static function create_interval(?string $interval_id): Interval
43 // {
44 // // Switch case...
45 // }
46 }
47