PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.17
Independent Analytics – WordPress Analytics Plugin v1.17
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 / Migrations / Migration.php
independent-analytics / IAWP / Migrations Last commit date
Migration.php 3 years ago Migration_1_0.php 3 years ago Migration_1_6.php 3 years ago Migration_1_8.php 3 years ago Migration_1_9.php 3 years ago Migration_2.php 3 years ago Migration_3.php 3 years ago Migration_4.php 3 years ago Migration_5.php 3 years ago Migration_6.php 3 years ago Migration_7.php 3 years ago Migration_8.php 3 years ago Migration_Job.php 3 years ago
Migration.php
97 lines
1 <?php
2
3 namespace IAWP\Migrations;
4
5 abstract class Migration
6 {
7 /**
8 * Classes that extend must provide their database version
9 *
10 * @var string
11 */
12 protected $database_version = '0';
13
14 final public function __construct()
15 {
16 $this->migrate();
17 }
18
19 /**
20 * Trigger the migration
21 *
22 * @return void
23 */
24 final protected function migrate(): void
25 {
26 $db_version = get_option('iawp_db_version', '0');
27
28 if (version_compare($db_version, $this->database_version, '<')) {
29 // Trigger the classes' migration function
30 $this->handle();
31 update_option('iawp_db_version', $this->database_version);
32 }
33 }
34
35 /**
36 * Classes that extend must define a handle method where migration work is done
37 *
38 * @return void
39 */
40 abstract protected function handle(): void;
41
42 /**
43 * @return void
44 */
45 public static function create_or_migrate(): void
46 {
47 if (self::should_migrate()) {
48 update_option('iawp_is_migrating', '1');
49
50 new Migration_1_0();
51 new Migration_1_6();
52 new Migration_1_8();
53 new Migration_1_9();
54 new Migration_2();
55 new Migration_3();
56 new Migration_4();
57 new Migration_5();
58 new Migration_6();
59 new Migration_7();
60 new Migration_8();
61
62 delete_option('iawp_is_migrating');
63 }
64 }
65
66 /**
67 * @return bool
68 */
69 public static function is_migrating(): bool
70 {
71 $db_version = get_option('iawp_db_version', '0');
72 $is_migrating = get_option('iawp_is_migrating') === '1';
73 $is_current = version_compare($db_version, '8', '=');
74 $is_outdated = !$is_current;
75
76 return $is_outdated || $is_migrating;
77 }
78
79 public static function is_actually_migrating(): bool
80 {
81 return get_option('iawp_is_migrating') === '1';
82 }
83
84 /**
85 * @return bool
86 */
87 public static function should_migrate(): bool
88 {
89 $db_version = get_option('iawp_db_version', '0');
90 $is_migrating = get_option('iawp_is_migrating') === '1';
91 $is_current = version_compare($db_version, '8', '=');
92 $is_outdated = !$is_current;
93
94 return $is_outdated && !$is_migrating;
95 }
96 }
97