PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.4.2
Independent Analytics – WordPress Analytics Plugin v2.4.2
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 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 All 120 releases
independent-analytics / IAWP / Statistics / Intervals / Intervals.php
Intervals.php
48 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace 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 \IAWP\Statistics\Intervals\Hourly(), new \IAWP\Statistics\Intervals\Daily(), new \IAWP\Statistics\Intervals\Weekly(), new \IAWP\Statistics\Intervals\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) : \IAWP\Statistics\Intervals\Interval
23 {
24 foreach (self::all() as $interval) {
25 if ($interval->id() === $interval_id) {
26 return $interval;
27 }
28 }
29 return new \IAWP\Statistics\Intervals\Daily();
30 }
31 public static function default_for(int $days) : \IAWP\Statistics\Intervals\Interval
32 {
33 if ($days <= 3) {
34 return new \IAWP\Statistics\Intervals\Hourly();
35 } elseif ($days <= 84) {
36 return new \IAWP\Statistics\Intervals\Daily();
37 } elseif ($days <= 182) {
38 return new \IAWP\Statistics\Intervals\Weekly();
39 } else {
40 return new \IAWP\Statistics\Intervals\Monthly();
41 }
42 }
43 // public static function create_interval(?string $interval_id): Interval
44 // {
45 // // Switch case...
46 // }
47 }
48